题解 | #链表分割#

链表分割

https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70

import java.util.*;

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Partition {
    public ListNode partition(ListNode pHead, int x) {
        ListNode beforeHead = new ListNode(0);
        ListNode before = beforeHead;
        ListNode afterHead = new ListNode(0);
        ListNode after = afterHead;
        //遍历原始链表
        while (pHead != null) {
            if (pHead.val < x) {
                before.next = pHead;
                before = before.next;
            } else {
                after.next = pHead;
                after = after.next;
            }
            //移动到原始链表的下一个节点
            pHead = pHead.next;
        }
        //将after链表的末尾设置为null,防止成环
        after.next = null;
        before.next = afterHead.next;
        return beforeHead.next;
    }
}

全部评论

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务