题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
//   pre指针指向的是合并之后链表的最后一个元素的位置,
//   每进行一次比较操作确定一个元素的最终位置。
//   本题有三个指针:l1与l2仅用于定位,pre指针用于确定该轮对比之后选定的元素
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        ListNode dummy = new ListNode(-1);
        ListNode pre =dummy; // 创建一个虚拟节点来保留最终返回列表的头结点位置
        ListNode l1=list1;
        ListNode l2=list2;
        while(l1!=null && l2!=null){
            if(l1.val<=l2.val){
                pre.next=l1;
                l1=l1.next;
            }else{
                pre.next=l2;
                l2=l2.next;
            }

            pre=pre.next; // 统一操作pre
        }
	  	// 串上剩余节点
        if(l1!=null) {
            pre.next=l1;
        }
        if(l2!=null) {
            pre.next=l2;
        }
        return dummy.next;
    }
}

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务