86. 分隔链表
小于 1 分钟
86. 分隔链表
题目:
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。
你应当 保留 两个分区中每个节点的初始相对位置。
leetcode地址:https://leetcode.cn/problems/partition-list/
solution
class Solution {
public ListNode partition(ListNode head, int x) {
ListNode virtualNode1 = new ListNode(-1);
ListNode p1 = virtualNode1;
ListNode virtualNode2 = new ListNode(-1);
ListNode p2 = virtualNode2;
ListNode p = head;
while(p != null) {
if (p.val >= x) {
p2.next = p;
p2 = p2.next;
} else {
p1.next = p;
p1 = p1.next;
}
// 断开原链表中的每个节点的 next 指针, 避免有环
ListNode temp = p.next;
p.next = null;
p = temp;
}
p1.next = virtualNode2.next;
return virtualNode1.next;
}
}
版权申明
本站点所有内容,版权均归https://wenchao.ren所有,除非明确授权,否则禁止一切形式的转载协议
打赏
