您的位置:首页 > 其它

leetcode--Partition List

2017-08-08 11:25 393 查看
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

You should preserve the original relative order of the nodes in each of the two partitions.

For example,

Given 
1->4->3->2->5->2
 and x = 3,

return 
1->2->2->4->3->5
.

[java] view
plain copy

/** 

 * Definition for singly-linked list. 

 * public class ListNode { 
<
4000
li style="border-top:none;border-right:none;border-bottom:none;border-left:3px solid rgb(108,226,108);background-color:rgb(248,248,248);line-height:18px;margin:0px !important;padding:0px 3px 0px 10px !important;list-style-position:outside !important;">
 *     int val; 

 *     ListNode next; 

 *     ListNode(int x) { val = x; } 

 * } 

 */  

public class Solution {  

    public ListNode partition(ListNode head, int x) {  

        ListNode first = new ListNode(0);  

        ListNode second = new ListNode(0);  

        ListNode res = first;  

        ListNode res2 = second;  

        ListNode cur = head;  

        while(cur!=null){  

            if(cur.val<x){  

                first.next = cur;  

                cur = cur.next;  

                first.next.next = null;  

                first = first.next;  

            }else{  

                second.next = cur;  

                cur = cur.next;  

                second.next.next = null;  

                second = second.next;  

            }  

        }  

        first.next = res2.next;  

        return res.next;  

    }  

}  

原文链接http://blog.csdn.net/crazy__chen/article/details/46429569
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: