java中双向链表,单链表深拷贝JAVA

  java中双向链表,单链表深拷贝JAVA

  写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用

  多向链表结构如

  (视频教程推荐:java课程)

  公共类节点{

  公共(同Internationalorganizations)国际组织值;

  公共节点然后

  公共节点边缘

  公共节点(整数数据){

  这个值=数据

  }

  }方法一:使用模拟结构

  公共类CopyFromMultiNode {

  公共静态void main(String[] args){

  int[] array={12,3,4,5,6,77,6,54,56,6,7,87,15,15,15 };

  //数组转结节

  Node head=array2node(数组);

  节点帮助=头;

  System.out.print(处理前);

  而(救命!=null){

  系统。出去。打印(帮助。值“”);

  帮助=帮助。下一个

  }

  //使用模拟结构

  node RES=复制自rand 1(head);

  系统。出去。println();

  System.out.print(处理后结果:);

  while(res!=null){

  系统。出去。打印(参考值“”);

  res=res.next

  }

  }

  //使用模拟结构

  公共静态节点copyFromRand1(节点头){

  节点当前=头部

  HashMapNode,Node map=new HashMap();

  而(cur!=null){

  map.put(cur,new Node(cur。值));

  下一个

  }

  cur=头;

  而(cur!=null){

  map.get(cur).下一张=地图。获取(cur。下一个);

  map.get(cur).rand=地图。获取(cur。兰德);

  下一个

  }

  返回地图。get(头);

  }

  //数组转结节功能,供测试使用

  公共静态节点array2node(int[] array){

  Node head=new Node(array[0]);

  节点当前=头部

  for(int I=1;iarray.lengthi ){

  cur.next=新节点(array[I]);

  下一个

  }

  回程头;

  }

  //基础结节节点结构

  公共静态类节点{

  公共(同Internationalorganizations)国际组织值;

  公共节点然后

  公共节点边缘

  公共节点(整数数据){

  这个值=数据

  }

  }

  }2、使用几个有效变量方法,无需其他结构

  //使用几个有效变量方法

  //替换方法一的copyFromRand1方法

  公共静态节点copyFromRand2(节点头){

  下一个节点=空

  节点当前=头部

  //1 - 2 - 3 - 4==1 - 1` - 2 - 2` - 3 - 3` - 4 - 4

  //完成链表拼接

  而(cur!=null){

  next=cur.next

  cur.next=新节点(cur。值);

  诅咒。下一个。下一个=下一个;

  cur=下一个

  }

  cur=头;

  节点curCopy=null

  //添加结节的边缘值

  而(cur!=null){

  下一个=当前。下一个。接下来;

  当前副本=当前。下一个。接下来;

  curCopy=cur.rand!=null?诅咒。兰德。下一个:null

  cur=下一个

  }

  Node res=head.next

  cur=头;

  //拆分

  //1 - 1` - 2 - 2` - 3 - 3` - 4 - 4

  //==1 - 2 - 3 - 4 和1`- 2`- 3`- 4`

  而(cur!=null){

  下一个=当前。下一个。接下来;

  curCopy=cur.next

  cur.next=下一个

  curCopy.next=next!=null?下一个。下一个:null

  cur=下一个

  }

  返回表示留数

  }相关教程推荐:java入门以上就是爪哇岛复制多向链表的方法的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: