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

链表的奇偶重排

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) {
        // 奇数节点链表
        ListNode singleNode = new ListNode(-1);
        // 偶数节点链表
        ListNode doubleNode = new ListNode(-1);
        // 记录当前奇数节点
        ListNode dump1 = singleNode;
        // 记录当前偶数节点
        ListNode dump2 = doubleNode;
        int i = 1;
        while (head != null) {
            ListNode next = head.next;
		    // 切断当前节点和后续节点联系
            head.next = null;
            if (i % 2 != 0) {
                dump1.next = head;
                dump1 = dump1.next;
            } else {
                dump2.next = head;
                dump2 = dump2.next;
            }
            i++;
            head = next;
        }
        // 将偶数链表添加到奇书链表后面
        dump1.next = doubleNode.next;
        return singleNode.next;
    }
}

全部评论

相关推荐

04-11 23:51
门头沟学院 Java
坚定的芭乐反对画饼_许愿Offer版:人人都能过要面试干嘛,发个美团问卷填一下,明天来上班不就好了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务