剑指_复杂链表的复制(Python)
题目:
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)
- 返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
代码:
class RandomListNode:def __init__(self, x):self.label = xself.next = Noneself.random = None
class Solution:# 返回 RandomListNodedef Clone(self, pHead):# write code hereif pHead == None: # 判断是否为空return None# 复制一个一样的node,并且添加到之前的链表的每一个node的后面pTmp = pHeadwhile pTmp:node = RandomListNode(pTmp.label)node.next = pTmp.nextpTmp.next = nodepTmp = node.next# 实现新建的node的random的指向pTmp = pHeadwhile pTmp:if pTmp.random:pTmp.next.random = pTmp.random.nextpTmp = pTmp.next.next # 断开原来的node和当前新的node之间的连接pTmp = pHeadnewHead = pHead.nextpNewTmp = pHead.nextwhile pTmp:pTmp.next = pTmp.next.nextif pNewTmp.next:pNewTmp.next = pNewTmp.next.nextpNewTmp = pNewTmp.nextpTmp = pTmp.nextreturn newHead
if __name__ =="__main__":
# 验证n1 = RandomListNode(1)n2 = RandomListNode(2)n3 = RandomListNode(3)n4 = RandomListNode(4)n5 = RandomListNode(5)n1.next = n2n2.next = n3n3.next = n4n4.next = n5s = Solution()newHead = s.Clone(n1)tmp = newHeadwhile tmp:print(tmp.label)tmp = tmp.next
输出:
1
2
3
4
5
剑指_复杂链表的复制(Python)相关推荐
- 牛客网-剑指Offer-复杂链表的复制
题目链接:https://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba?tpId=13&tqId=11178&r ...
- 剑指offer35.复杂链表的复制
为什么不可以直接将每个节点复制下来? class Solution {public:Node* copyRandomList(Node* head) {if(head == nullptr) retu ...
- 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点
- 【LeetCode】剑指 Offer 22. 链表中倒数第k个节点
[LeetCode]剑指 Offer 22. 链表中倒数第k个节点 文章目录 [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 一.遍历 二.双指针 总结 一.遍历 先遍历统计链表长 ...
- 剑指offer -- 反转链表
先摆明重要性 剑指offer -- 反转链表 校招原题 解法一:迭代 翻转 即 将所有节点的next指针指向前驱节点. 由于是单链表,我们在迭代时不能直接找到前驱节点,所以我们需要一个额外的指针保存 ...
- 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)
19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...
- 剑指offer 矩阵中的路径 @python
剑指offer 矩阵中的路径 @python 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向 ...
- 《剑指offer》面试题的Python实现
所属网站分类: 面试经典 > python 作者:gg 链接: http://www.pythonheidong.com/blog/article/464/ 来源:python黑洞网 www.p ...
- 剑指offer66题思路解析与python代码
旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5 ...
- 剑指Offer #14 链表中倒数第k个结点(快慢指针) | 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 节点结构如下: public class ListNode {int val ...
最新文章
- 移动端触屏click点击事件延迟问题,以及tap的解决方案
- 线性布局 相对布局 参数
- FLEX 运行 空白
- Android程序员的进阶之路
- 面试官问:能否模拟实现JS的new操作符(高频考点)
- CPU-内存-IO-网络调优
- Spark 机器学习中的线性代数库
- python plt.plot bar 设置绘图尺寸大小
- 神经网络的激活函数、并通过python实现激活函数
- java的remove iterator_Java集合 iterator.remove()方法详解
- 阻止跳转的四种方式,你知道吗?
- ETF:一种让美国“80后”趋之若鹜的投资工具
- ros系统能用c语言编程,ROS操作系统学习(十一)参数的使用与编程方法
- librosa 语音库(二)STFT 的实现
- 《人工智能导论》自然演绎推理
- 企业流程再造(BPR)
- 解决Google Drive 大文件下载过程中中途失败问题
- python nonetype_理解Python中的NoneType对象
- 90%的人都被这样“坑”过?淘宝京东的双十一价是真的吗?
- AnchoredSnapper函数使用说明
热门文章
- Julia : 关于类型的匹配和规范建议
- 常用数据库的字段类型及大小
- SQLite 时间格式化
- 阿里云原生“因云而生”心智大图重磅发布
- 【优化分类】基于matlab遗传算法优化支持向量机分类(多输入多分类)【含Matlab源码 QF003期】
- ai智能和大数据测试_测试版可帮助您根据自己的条件创建数据和AI平台
- uber大数据_Uber创建了深度神经网络以为其他深度神经网络生成训练数据
- PyTorch源码解读之torch.utils.data.DataLoader
- 动态规划: 投资分配问题
- mysql5.6二进制包_MySQL 5.6版本二进制包多实例安装