合并两个有序的单链表,合并之后的链表依然有序(java版)

合并两个有序的单链表,合并之后的链表依然有序(java版)

思路

在这里插入图片描述
1.分别遍历

2.将两个中小的节点放入新的链表

3.将剩余的节点添加到结果链表中

4.返回结果链表的头节点

{
      
        //两个链表都为空
        if(head1.next == null && head2.next == null){
            return null;
        }
   
        //两个链表都不为空
        if(head1.next!=null &&head2.next!=null){
            HeroNode tmp1=head1.next;
            HeroNode tmp2=head2.next;
            HeroNode head3 = new HeroNode(0, "", "");
            HeroNode tmp3=head3;
            while (true){
               //两个指针到末尾
               if(tmp1==null&&tmp2==null){
                   
                 break;
                 
               }
               
               if(tmp1!=null&&tmp2!=null){
                   // 遍历两个链表,将较小的节点添加到结果链表中
                   if(tmp1.no<tmp2.no){
                 
                       tmp3.next=tmp1;
                     
                       tmp1=tmp1.next;

                   }else{
                 
                       tmp3.next=tmp2;
                      
                       tmp2=tmp2.next;
                   }
               }else{
                   ///将剩余的节点添加到结果链表中
                   if(tmp1==null){
                  
                       tmp3.next=tmp2;
                     
                       tmp2=tmp2.next;
                   }else if(tmp2==null){
                  
                       tmp3.next=tmp1;
                      
                       tmp1=tmp1.next;
                   }
                   
               }


                tmp3= tmp3.next;

             
                
           }
         //返回结果链表的头节点
            return head3;
         
            
        }

        return null;
        
    }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值