数据结构-day01
86. 分隔链表(leetcode)
解题思路
- 创建两个头结点first 和 second
- 然后循环遍历原来的链表,将小于 x 的节点连接在first节点的后边,大于或等于 x 的节点都连接在second节点后边
- 将两个新的链表连接起来
执行用时:0 ms
内存消耗:38.9 MB
class Solution {
public ListNode partition(ListNode head, int x) {
if(head == null) {
return head;
}
ListNode first = new ListNode(0);
ListNode second = new ListNode(0);
ListNode h = first;
ListNode h2 = second;
while(head != null) {
if(head.val < x) {
first.next = new ListNode(head.val);
first = first.next;
}
if(head.val >= x) {
second.next = new ListNode(head.val);
second = second.next;
}
head = head.next;
}
first.next = h2.next;
return h.next;
}
}
内存消耗较大,我会继续改进,也希望得到大家宝贵的意见