将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
分析:
核心代码:
public static SingleList.Node mergeTwoLists(SingleList.Node headA, SingleList.Node headB) {
SingleList singlelist=new SingleList();
SingleList.Node newHead=singlelist.new Node(-1); //定义一个虚拟结点
SingleList.Node tHead=newHead; //存储头结点
while(headA!=null&&headB!=null){
if(headA.getData()>=headB.getData()){ //头结点为B的头结点
newHead.next=headB;
newHead=headB;
headB=headB.next;
}
else{
newHead.next=headA;
newHead=headA;
headA=headA.next;
}
}
if(headA!=null){
newHead.next=headA;
}
if(headB!=null){
newHead.next=headB;
}
return tHead.next;
}
运行结果: