• 25.复杂链表的复制(python)


    题目描述

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

    思路就是三步走

    1.在原来的每一个node后面追加一个一模一样的node

    2.把node.random.next   赋值给node.next.random

    3断开形成新链

     1 import copy
     2 class Solution:
     3     # 返回 RandomListNode
     4     def Clone(self, pHead):
     5         # write code here
     6         if pHead == None:
     7             return None
     8         ptmp = pHead
     9         while ptmp :
    10             newtmp = RandomListNode(ptmp.label)
    11             newtmp.next = ptmp.next
    12             ptmp.next=newtmp
    13             ptmp=newtmp.next
    14             if newtmp.next:
    15                 newtmp = newtmp.next.next
    16         ptmp = pHead
    17         while ptmp:
    18             if ptmp.random:
    19                 ptmp.next.random = ptmp.random.next
    20             ptmp=ptmp.next.next
    21         
    22         newHead = pHead.next
    23         ptmp=pHead
    24         newtmp=pHead.next
    25         while ptmp:
    26             ptmp.next=ptmp.next.next
    27             if newtmp.next:
    28                 newtmp.next=newtmp.next.next
    29                 newtmp=newtmp.next
    30             ptmp = ptmp.next
    31         return newHead

    2019-12-15 10:36:22 

  • 相关阅读:
    Android 跨进程通信之AIDL
    Android开发 USB开发
    Socket实现客户端和服务端
    Validation 内置校验
    BigDecimal工具类
    Visio 容器工具
    SQLite 通过.sql文件导入导出数据
    Go 常用内置包简介
    视频分片.上传
    PS 编辑形状
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/12042144.html
Copyright © 2020-2023  润新知