1485. Clone Binary Tree With Random Pointer
https://leetcode.com/problems/clone-binary-tree-with-random-pointer/
# Definition for Node.
# class Node:
# def __init__(self, val=0, left=None, right=None, random=None):
# self.val = val
# self.left = left
# self.right = right
# self.random = random
class Solution:
def copyRandomBinaryTree(self, root: 'Node') -> 'NodeCopy':
self.map = {}
def dfs(node):
if not node:
return None
if node in self.map:
return self.map[node]
copyNode = NodeCopy(node.val)
self.map[node] = copyNode
copyNode.left = dfs(node.left)
copyNode.right = dfs(node.right)
copyNode.random = dfs(node.random)
return copyNode
return dfs(root)
Last updated
Was this helpful?