leetcode_middle_28_328. Odd Even Linked List

来源:互联网 发布:淘宝客服违禁词有哪些 编辑:程序博客网 时间:2024/06/18 01:20

题意:

给一个单链表,将所有奇数号的结点连起来,再把偶数号的结点连起来,连在后面。

分析:

本来的想法是一直遍历链表。拆一个奇数结点到奇数链表,再拆一个偶数结点到偶数链表,但是这样超了空间。从而去想,能不能针对链表本身去改连。画图!

链表最重要的就是画图,弄清楚过程。其次有几个要点,动态更新的时候要保证结点能找到,要记录需要的头结点等问题。至于用代码表述画图的过程很简单:

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode oddEvenList(ListNode head) {        ListNode odd;        ListNode even;        ListNode evenhead;        if(head == null){            return null;        }                odd = head;        even = head.next;        evenhead = even;                while(even!= null && even.next!=null){            odd.next = odd.next.next;            even.next = even.next.next;            odd = odd.next;            even = even.next;        }        odd.next = evenhead;        return head;    }}


0 0
原创粉丝点击