问题描述
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
思路
使用三个指针,temp1和temp2遍历链表,res是假的头结点,temp负责结果链表的增长。
代码
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode temp1 = l1;
ListNode temp2 = l2;
ListNode res = new ListNode();
ListNode temp = res;
while (temp1 != null && temp2 != null) {
if (temp1.val < temp2.val) {
temp.next = new ListNode(temp1.val);
temp1 = temp1.next;
} else {
temp.next = new ListNode(temp2.val);
temp2 = temp2.next;
}
temp = temp.next;
}
temp.next = temp1 == null ? temp2 : temp1;
return res.next;
}
}