copy-list-with-random-pointer
2017-09-22 13:18
253 查看
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.
Return a deep copy of the list.
Return a deep copy of the list.
class Node(object): def __init__(self, val, p=None, r=None): self.data = val self.next = p self.random = r def Creatlist(n): if n <= 0: return False if n == 1: return Node(1) else: root = Node(1) tmp = root for i in range(2, n + 1): tmp.next = Node(i) tmp = tmp.next return root def addRanodm(head): p = head while p.next and p.next.next: p.random = p.next.next p = p.next.next.next return head def printlist(head): p = head while p ! 9641 = None: if p.random: print [p.data, p.random.data] else: print [p.data] p = p.next class Solution(object): def copyList(self, head): if head is None: return head p = head while p is not None: newNode = Node(p.data) temp = p.next p.next = newNode newNode.next = temp p = temp p = head while p is not None: if p.random is not None: p.next.random = p.random.next p = p.next.next p = head newHead = head.next while p.next is not None: temp = p.next p.next = p.next.next p = temp return newHead head = addRanodm(Creatlist(8)) printlist(head) print "-------------------------" P = Solution() newhead = P.copyList(head) printlist(newhead)
相关文章推荐
- Copy List with Random Pointer
- [LeetCode] Copy List with Random Pointer
- Copy List with Random Pointer
- LeetCode:Copy List with Random Pointer
- leetcode - Copy List with Random Pointer
- [Leetcode 138] Copy List with Random Pointer
- leetcode-Copy List with Random Pointer
- LeetCode Copy List with Random Pointer 分析解答
- 附有随机结点指针的链表的深度拷贝 Copy List with Random Pointer
- LeetCode——Copy List with Random Pointer
- LeetCode Copy List with Random Pointer
- leetCode:Copy List with Random Pointer
- Java for LeetCode 138 Copy List with Random Pointer
- Leetcode Copy List with Random Pointer(面试题推荐)
- [算法分析与设计] leetcode 每周一题: Copy List with Random Pointer
- leetcode:Copy List with Random Pointer
- Copy List with Random Pointer
- 138-Copy List with Random Pointer
- leetcode -- Copy List with Random Pointer
- LeetCode: Copy List with Random Pointer