博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复杂链表的复制(python)
阅读量:4968 次
发布时间:2019-06-12

本文共 1181 字,大约阅读时间需要 3 分钟。

题目描述

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
示例1

输入

 

输出

 

 
# -*- 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        #如果链表为空链表,则返回本身即可        #如果非空 需要进行复制操作,如果没有特殊指针,        #只需要复制next都能很快做出来,但是加上特殊指针这就需要一定技巧,        #因为特殊指针随便指,而你每次找特殊指针所指的节点都需要从头开始遍历找起,        if not pHead:            return pHead        cloNode = pHead        while cloNode:            node = RandomListNode(cloNode.label)            node.next = cloNode.next            cloNode.next = node            cloNode = node.next        cloNode = pHead        while cloNode:            node = cloNode.next            if cloNode.random:                node.random = cloNode.random.next            cloNode = node.next        cloNode = pHead        pHead = pHead.next        while cloNode.next:            node = cloNode.next            cloNode.next = node.next            cloNode = node        return pHead

  

转载于:https://www.cnblogs.com/277223178dudu/p/10552254.html

你可能感兴趣的文章
目录导航「深入浅出ASP.NET Core系列」
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
表格的拖拽功能
查看>>
函数的形参和实参
查看>>
【TP SRM 703 div2 500】 GCDGraph
查看>>
webdriver api
查看>>
apache 实现图标缓存客户端
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>