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

链表的奇偶重排

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;

    }
}

全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务