定义一个傀儡结点node。
因为这两个链表都是有序的,先比较两个链表的第一项,
比较小的那一项跟在傀儡结点的后面,较大的则跟下一项进行比较。
当有链表为空时,直接将node.next等于另一链表的剩余结点。
代码如下:
public ListNode mergeTwoLists(ListNode headA, ListNode headB) {
ListNode node = new ListNode(-1);
ListNode prev = node;
if(headA==null) {
return headB;
}
if(headB==null) {
return headA;
}
//1 2 4
//1 3 4
while (headA!=null&&headB!=null) {
if(headA.val<headB.val) {
node.next = headA;
headA = headA.next;
}else {
node.next = headB;
headB = headB.next;
}
node = node.next;
}
if(headA!=null) {
node.next = headA;
}
if(headB!=null) {
node.next = headB;
}
return prev.next;
}