剑指 Offer 25.合并两个排序的链表
定义一个伪头结点head,再定义一个临时指针cur=head,判断l1和l2的值的大小,让cur指向较小的结点,重复此步骤,直到l1或者l2为空,最后让cur指向剩下的结点。注意:一开始不能让cur指向l1或者l2,这样会形成循环指针,一定要让cur先指向一个伪结点。
代码:
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode head = new ListNode (0), cur = head;
while(l1 != null && l2 != null) {
if(l1.val < l2.val) {
cur.next = l1;
l1 = l1.next;
}
else {
cur.next = l2;
l2 = l2.next;
}
cur = cur.next;
}
cur.next = l1 != null ? l1:l2;
return head.next;
}
}