复杂链表的赋值_25
2023-04-18 16:10:32 时间
思路参考牛客大佬题解
注意:注意复制链表的最后一个结点的next指针不能跟原链表指向同一个空结点None,next指针要重新赋值None(判定程序会认定你没有完成复制)
代码:
public RandomListNode Clone(RandomListNode pHead) {
if (pHead==null){
return null;
}
//1.复制每个结点到原结点之后
RandomListNode currNode=pHead;
while (currNode!=null){
RandomListNode currNodeClon=new RandomListNode(currNode.label);
RandomListNode nextNode=currNode.next;
currNode.next=currNodeClon;
currNodeClon.next=nextNode;
currNode =nextNode;
}
//赋值后的结点树是偶数个
//重新遍历链表将老结点的随机结点的拷贝份 赋值给克隆结点随机结点
currNode=pHead;
while (currNode!=null){
currNode.next.random=currNode.random.next;
currNode=currNode.next.next;
}
//拆分链表,拆除新旧链表
RandomListNode cloneHead=pHead.next;
currNode=pHead;
while (currNode!=null){
RandomListNode cloneNode=currNode.next;
currNode.next=cloneNode.next;
cloneNode.next=cloneNode.next==null?null:cloneNode.next.next;
currNode=currNode.next;
}
return cloneHead;
}`
相关文章
- ECharts 饼图颜色设置教程 - 4 种方式设置饼图颜色
- Spring框架之IOC入门
- 猿创征文|我的前端——【HTML5】基础成长学习之路
- 每日算法之二叉树中和为某一值的路径(二)
- 【TFS-CLUB社区 第4期赠书活动】〖Flask Web全栈开发实战〗等你来拿,参与评论,即可有机获得
- bug处理记录:com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 9)): has to be escaped using backslash to be included in string value at [Source:
- 自从用了 OkHttp,别的都完全不想用了!
- Web实训项目--网页设计(附源码)
- 每日算法之二叉搜索树的后序遍历序列
- 【第二趴】uni-app开发工具(手把手带你安装HBuilderX、搭建第一个多端项目初体验)
- Http、Https简介和Session、token的请求流程
- 【前端开发环境安装、配置、项目搭建全教程】
- 前端知识——css之flex布局
- 两种方案解决ERROR in Conflict: Multiple assets emit different content to the same filename index.html 的问题
- 每日算法之栈的压入、弹出序列
- Mybatis 入门实战(4)--Mybatis-Plus 使用
- VUE3&TS: Vue3+TS的项目搭建
- Vmware Workstation17 安装centos7(详细教程)
- SpringCloud Alibaba(七) - JWT(JSON Web Token)
- vue3 antd项目实战——table表格的自定义筛选【纯前端filters过滤、自定义筛选table表格数据】