剑指offer 26 复杂链表的复制
来源:互联网 发布:淘宝如何查看买家评价 编辑:程序博客网 时间:2024/05/17 08:54
题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
思路:
用一个辅助字典,存储原链表和复制链表的对应关系。第二次遍历的时候,生成random节点。
# -*- coding:utf-8 -*-# class RandomListNode:# def __init__(self, x):# self.label = x# self.next = None# self.random = Noneclass Solution: # 返回 RandomListNode def Clone(self, pHead): # write code here if pHead == None: return None random_dict = {} cHead = RandomListNode(0) cNode = cHead pNode = pHead while pNode != None: cNode.label = pNode.label cNode.next = RandomListNode(0) random_dict[pNode] = cNode pNode = pNode.next if pNode == None: cNode.next = None else: cNode = cNode.next pNode = pHead cNode = cHead while pNode != None: if pNode.random == None: random_dict[pNode].random = None else: random_dict[pNode].random = random_dict[pNode.random] pNode = pNode.next return cHead
阅读全文
0 0
- 【剑指offer】复杂链表的复制
- 剑指offer--复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer - 复杂链表的复制
- 剑指Offer--复杂链表的复制
- 剑指offer:复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer-复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer:复杂链表的复制
- [剑指offer]复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer|复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指Offer:复杂链表的复制
- 剑指offer 复杂链表的复制
- 剑指offer-复杂链表的复制
- java 60 行代码写一个简单可用的并且带过期时间的内存缓存
- jquery 的ready() 与window.onload()的区别
- spring三种事物处理方式
- HTTP状态码详解
- Android Studio 学习第一章(下载安装)
- 剑指offer 26 复杂链表的复制
- 数据库索引
- View的事件体系
- pageHelper分页插件的使用
- spring boot -+- httpclient访问api -+-下载pdf文档 总结
- Ubuntu上安装RED5服务器
- vivo面试
- leet code 008:atoi 字符串转整型数
- java读取txt文件乱码解决方案