每日一练(链表的合并)

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

分析:
在这里插入图片描述
核心代码:

 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;
    }

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42373873/article/details/89491157