精选文章 合并链表

合并链表

作者:diaoyoxun8287 时间: 2021-02-07 01:38:13
diaoyoxun8287 2021-02-07 01:38:13
【摘要】输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 
  
    class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }
}
public class Solution { public ListNode Merge(ListNode...
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
  class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }
}
public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { ListNode MergeNode=null; ListNode node=null; if(list1==null){ return list2; } if(list2==null){ return list1; } while(list1!=null&&list2!=null){ if(list1.val<=list2.val){ if(MergeNode==null){ MergeNode=node=list1; }else{ node.next=list1; node=node.next; } list1=list1.next; }else{ if(MergeNode==null){ MergeNode=node=list2; }else{ node.next=list2; node=node.next; } list2=list2.next; } } if(list1==null){ node.next=list2; }else{ node.next=list1; } return MergeNode; }
}

通过这个题真的是受益匪浅,前面遇到过的很多问题也是得到了解决。当对一个链表进行操作的时候,应该用他的替代者进行操作,不然他会不断地覆盖下一个。比如

我想实现一个链表node1,向其里面不断地添加元素
ListNode node1=new  ListNode(5); ListNode node2=null; for(int i=0;i<5;i++){ node1.next=new ListNode(i); node1=node1.next; } while(node1!=null){ System.out.println(node1.val); node1=node1.next; }

如果我这么做,最后链表里面只会剩下一个4,因为他会不断指向新的节点,而不是把他链接起来。而如果

 ListNode node1=new  ListNode(5); ListNode node2=null; node2=node1; for(int i=0;i<5;i++){ node2.next=new ListNode(i); node2=node2.next; } while(node1!=null){ System.out.println(node1.val); node1=node1.next; }

用一个node2代表node1去做这件事。node1就保存了5 0 1 2 34 五个节点。

首先

合并链表1

 

合并链表2

node2相当于一个指针移动。

转载于:https://www.cnblogs.com/wxw7blog/p/7492189.html

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:《数字视频和高清:算法和接口》一3.3感知均匀性

下一篇:上海中环高架仍在修复中 高德地图可规划绕行路线

您可能感兴趣

  • C++版--链表

    #include "head.h"#include "iostream.h"#include "string.h" typedef char ElemType; typedef struct LNode{  ElemType data;  struct LNode *next;}LNode,*Link; class LinkList{private: Link head;public: Li...

  • 动画图解:Word表格的拆分与合并(转)

    动画图解:Word表格的拆分与合并(转)[@more@]   下面这个Gif动画教程系列介绍Word中的表格操作,今天我们用动画的形式介绍Word表格的拆分与合并的方法。   一、表格的拆分   将光标插入要拆离部分的第一行(任何一个单元格中都可以),选择“表格”→“拆分表格”即可。   二、表格的合并   要分两种情况:打开“表格属性”对话框,看当前表格的文...

  • VS2005合并 GridView 单元格的或表头的方法

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound         If e.Row.Cells(0).Text.Equals("267-4...

  • C# 文件流合并(未测试是否可用)

    private void button1_Click( object sender, EventArgs e)         {             Packer.Pack( @" c:\temp\all.dat " , @" c:\temp\a.bat " , @" c:\temp\a.jpg " );             str...

  • C# Execl合并操作

    我对调用Execl.dll一向反感,因为会有乱七八糟的要求。。 但是还是记录一点,以后可能用到 using  System; using  System.Collections.Generic; using  System.Text; using  System.Reflection; using  Excel  =  Microso...

  • 新浪合并分众户外数字媒体搭建最具规模新媒体平台

    新浪公司和分众传媒集团今天宣布双方达成协议,新浪将合并分众旗下的户外数字广告业务。根据协议,新浪将增发4700万普通股用于购买分众传媒旗下的分众楼宇电视,框架广告以及卖场广告等业务相关的资产。分众传媒将保留其互联网广告业务,影院广告业务以及传统户外广告牌业务。 新浪CEO曹国伟表示:“这一合并的目的是为了整合中国最有实力的两大新媒体广告平台,从而为我们的客户提供更为有效的整合营销服务。我们相...

  • 失败的职业经理人 - 《雅虎:合并?收购?》@第一财经周刊

    杨致远,作为创业者,他是成功的,而且是极其成功的,造就了如此一个网络帝国(至少曾经),但,做为职业经理人,我想,他是失败的,也许这是东方文化中某些东西包括本土的创业者,白手起家,折腾出一个像模像样的企业之后如何将这个企业交个职业经理人去打理?似乎都没有很好的解决很多很多还是继续父子的传承,而这与欧美几百年来的商业传统确实有很大的区别我想,如果我是杨,或许在卖与不卖雅虎的时候,都会有一种难以割...

  • FULL OUTER JOIN 用例一则--合并表

    例: 表一  A       10        表二   C     40                               合并表    A        10      NULL          B       20                   D     50          --------->>                    B        2...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
合并链表介绍:华为云为您免费提供合并链表在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多合并链表的相关内容。| 移动地址: 合并链表 | 写博客