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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。