牛客:CM11 链表分割

题目:链表分割

题目描述:
现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。

代码:

public class Partition {
    public ListNode partition(ListNode pHead, int x) {
        // write code here
         ListNode smallNode = new ListNode(0);
       ListNode smallTemp = smallNode;
       ListNode bigNode = new ListNode(0);
       ListNode bigTemp = bigNode;
       ListNode cur = pHead;
       while(cur != null) {
           if(cur.val < x) {
               smallTemp.next = new ListNode(cur.val);
               smallTemp = smallTemp.next;
           }else {
               bigTemp.next = new ListNode(cur.val);
               bigTemp = bigTemp.next;
           }
           cur = cur.next;
       }
       smallTemp.next = bigNode.next;
       return smallNode.next;
    }
    
}

你可能感兴趣的:(力扣+牛客练习题,链表,java)