欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

算法--合并两个排序的链表

程序员文章站 2022-03-26 17:40:47
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入{1,3,5},{2,4,6}返回值{1,2,3,4,5,6}在线链接代码:public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { if(list1 == null ){ return list2; }...

题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入
{1,3,5},{2,4,6}
返回值
{1,2,3,4,5,6}
在线链接
代码:

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        if(list1 == null ){
            return list2;
        }
        if(list2 == null){
            return list1;
        }
        ListNode dumpy = new ListNode(0);
        ListNode help = dumpy;
        while (list1 != null || list2 != null){
            if(list1 != null && list2 != null){
                if(list1.val < list2.val){
                    help.next = list1;
                    list1 = list1.next;
                    help = help.next;
                }else {
                    help.next = list2;
                    list2 = list2.next;
                    help = help.next;
                }
            }
            if(list1 == null){
                help.next = list2;
                break;
            }
            if(list2 == null){
                help.next = list1;
                break;
            }
        }
        return dumpy.next;
    }
}

思路概述:
算法--合并两个排序的链表

算法--合并两个排序的链表
算法--合并两个排序的链表
如此反复,如果一个链表提前为空,则把help的next指针直接指向另一个链表投即可。
最后返回dumpy的next结点

本文地址:https://blog.csdn.net/weixin_43105156/article/details/110285775

相关标签: 剑指offer