AcWing
  • 首页
  • 题库
  • 题解
  • 分享
  • 问答
  • 活动
  • 应用
  • 吐槽
  • 登录/注册

AcWing 36. 合并两个排序的链表--Java代码    原题链接    简单

作者: 作者的头像   木木灬 ,  2019-04-10 15:07:11 ,  阅读 619


1


算法1

双指针分别遍历

用两个指针分别遍历两个链表
注意点:
1、两个链表的如果其中一个为空如何处理,即增加代码健壮性
2、创建两个指针,一个指向头节点,一个用来建立链表
3、如果其中一个链表遍历结束,那么直接将另一个链表接到尾部即可

Java 代码

class Solution {
    public ListNode merge(ListNode l1, ListNode l2) {
        if(l1==null&&l2==null)
            return null;
        else if(l1==null)
            return l2;
        else if(l2==null)
            return l1;
        ListNode node1 = l1;
        ListNode node2 = l2;
        ListNode node = null;
        if(node1.val>node2.val){
                node = node2;
                node2 = node2.next;
            }else{
                node = node1;
                node1=node1.next;
            }
        ListNode res = node;
        while(node1!=null&&node2!=null){
            if(node1.val>node2.val){
                node.next = node2;
                node = node.next;
                node2 = node2.next;
            }else{
                node.next = node1;
                node = node.next;
                node1 = node1.next;
            }
        }
        while(node1!=null){
            node.next = node1;
            node = node.next;
            node1 = node1.next;
        }
        while(node2!=null){
            node.next = node2;
            node = node.next;
            node2 = node2.next;
        }

        return res;
    }
}

0 评论

你确定删除吗?

© 2018-2021 AcWing 版权所有  |  京ICP备17053197号-1
联系我们  |  常见问题
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息