leetcode:Partition List

来源:互联网 发布:网络借钱平台 编辑:程序博客网 时间:2024/05/18 00:28

题目的要求是给出一个链表,和值X,把链表进行重组,前面部分小于x,后面的等于大于x

保持前后面的原始顺序一致



<span style="font-size:18px;">/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode partition(ListNode head, int x) {        if(head != null && head.next != null){            ListNode h1 = null, h2 = null;            ListNode t1 = null, t2 = null;            ListNode pre = head;            while(pre != null){                if(pre.val < x){                    if(h1 == null){                        h1 = pre;                        t1 = pre;                    }                    else{                        t1.next = pre;                        t1 = pre;                    }                }                else{                    if(h2 == null){                        h2 = pre;                        t2 = pre;                    }                    else{                        t2.next = pre;                        t2 = pre;                    }                }                pre = pre.next;            }            if(t1 != null){                t1.next = h2;            }            else{                h1 = h2;            }            if(t2 != null) t2.next = null;            head = h1;        }        return head;    }}</span>






0 0
原创粉丝点击