Java版《奇偶链表》

链表的奇偶重排

http://www.nowcoder.com/questionTerminal/02bf49ea45cd486daa031614f9bd6fc3

维护两个指针,一个指向奇数链表的头,一个指向偶数链表的头
先将链表分为奇数链表和偶数链表,然后再进行合并。
奇数位置的后面必定是偶数,偶数位置后面必定是奇数,利用这个特点即可解决这道题目~

public ListNode oddEvenList (ListNode head) {

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

        ListNode odd = head;
        ListNode oddHead = head;
        ListNode even = head.next;
        ListNode evenHead = head.next;

        while (even != null && even.next != null){
            odd.next = even.next;
            odd = odd.next;

            even.next = odd.next;
            even = even.next;
        }
        odd.next = evenHead;

        return oddHead;
    }
CS-Review 文章被收录于专栏

本专栏记录本人维护的仓库( cs-review.cn )分类刷题解法~

全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

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