题解 | #链表的奇偶重排#

链表的奇偶重排

https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode oddEvenList (ListNode head) {

        if(head == null || head.next == null){
            return head;
        }

        int count = 1;

        ListNode oddNode = new ListNode(0);
        ListNode oddFollow = oddNode; 
        ListNode evenNode = new ListNode(0);
        ListNode evenFollow = evenNode;

        while(head != null){
            if((count % 2) == 1){
                oddFollow.next = head;
                oddFollow = oddFollow.next;
            }else{
                evenFollow.next = head;
                evenFollow = evenFollow.next;
            }
            head = head.next;
            count++;
        }

        // 由于偶数在后面,无next对象,这里需要创建一个null,否则报错
        evenFollow.next = null;

        // 奇数链表后跟偶数链表
        oddFollow.next = evenNode.next;

        return oddNode.next;

    }
}

全部评论

相关推荐

如题如果提出了一个薪资,A不成功,会有可能被取消offer吗
爱打瞌睡的柯基:最想去你们公司 但是别家开的高一些,希望能申请高一点 不管结果如何都谢谢你
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务