【发布时间】:2019-12-15 13:18:55
【问题描述】:
public class Solution {
public ListNode MergeTwoLists(ListNode a, ListNode b) {
ListNode result = new ListNode(-1);
ListNode current = result;
ListNode l1 = a;
ListNode l2 = b;
while(l1 != null && l2 != null) {
if(l1.val < l2.val) {
current.next = l1;
l1 = l1.next;
} else {
current.next = l2;
l2 = l2.next;
}
current = current.next;
}
if(l1 != null) {
current.next = l1;
} else {
current.next = l2;
}
return result.next;
}
}
您好,我正在处理合并两个链表的 leetcode 问题,这是我在讨论部分找到的解决方案,它有效,但我不明白为什么我们需要创建第二个对象并将第一个对象分配给第二个完成工作,当我直接使用 result.next 时它不起作用
【问题讨论】:
-
我和你排序的原因是一样的,你需要一个临时变量。当你排序交换两个项目时,你会做 temp = A,A = B,B = A。如果你只是做 A = B,你会失去 A 的价值。
-
@jdweng temp 我明白了,但是在这里如果我使用 result.next 代替它不起作用,它是一个链表,result.next 表示下一个
标签: c# linked-list