剑指Offer——合并两个排序的链表

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
时间限制:1秒 空间限制:32768K
本题知识点:链表

代码实现

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        if(list1 == null){
            return list2;
        }
        if(list2 == null){
            return list1;
        }
        ListNode result = null;
        ListNode current = null;
        while(list1!=null && list2!=null){
            if(list1.val <= list2.val){
                if(result == null){
                    result = list1;
                    current = result;
                }else{
                    current.next = list1;
                    current = list1;
                }
                list1 = list1.next;
            }else{
                if(result == null){
                    result = list2;
                    current = result;
                }else{
                    current.next = list2;
                    current = list2;
                }
                list2 = list2.next;
            }
        }
        if(list1 == null){
            current.next = list2;
        }else{
            current.next = list1;
        }
        return result;
    }
}

解题思路

这道题还是考察的我们对链表知识的掌握,还没掌握的同学请看我前面几道题,或者去数据结构和算法系列的链表的文章。
首先,我们进行是否为空的判断,如果为空我们就直接返回另一个链表即可。
然后我们定义合并后的链表的头结点 result 和当前结点 current。当我们进行合并选取下一个结点的时候分为两种情况。第一种是链表1当前结点和链表2当前结点都不为空,然后我们选择相对较小的那个加入合并后的链表,然后把被选择的链表当前结点更新为下一个结点,然后依次循环判断;第二种情况是其中一个链表当前结点为空了,那么我们直接把另外一个链表剩余的结点合并到结果链表即可。
代码中 result 空判断,是因为 result 和 current 结点还都为空,所以直接把选择的结点赋值给 result 和 current,如果不为空,那么就把 current 的指针指向被选择结点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 代码一: 这是...
    qming_c阅读 1,639评论 0 0
  • 题目描述 合并两个排序的链表 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不...
    一只可爱的柠檬树阅读 1,216评论 0 0
  • 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路 ...
    繁著阅读 1,657评论 0 0
  • 姓名【李韫】 公司【辽宁丛迪服装有限公司】 组别:第388期努力一组 【日精进打卡第313天】 【知~学习】《六項...
    xiaoli_0d26阅读 2,767评论 0 0
  • 1 “阿沼,去给爷爷送封信。” 我接过信。 “但是,我不认识爷爷家啊。” 妈妈又递给我一个指南针。 “一直沿着针头...
    御盐阅读 3,717评论 0 1

友情链接更多精彩内容