将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
思维逻辑图:
代码如下:
public static ListNode mergeTwoLists(ListNode headA, ListNode headB){
ListNode node = new ListNode(-1);
ListNode newHead = null;
ListNode tmp = node;
while(headA != null && headB != null) {
if(headA.data < headB.data) {
tmp.next = headA;
headA = headA.next;
tmp = tmp.next;
}else{
tmp.next = headB;
headB = headB.next;
tmp = tmp.next;
}
}
//当A,B任意一单链表走完时,输出另一链表即可
if(headA == null) {
tmp.next = headA;
}
if(headB == null) {
tmp.next = headB;
}
return newHead.next;
}