We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
"""
Node is defined as
self.left (the left child of the node)
self.right (the right child of the node)
self.info (the value of the node)
"""
def tree_Coords(root, d, radius, level):
if not root:
return
if level not in d.keys():
d[level] = dict()
d[level].update({radius: root.info})
tree_Coords(root.left, d, radius-1, level+1)
tree_Coords(root.right, d, radius+1, level+1)
def topView(root):
radius = 0
level = 0
if not root:
return
d = dict()
tree_Coords(root, d, radius, level)
res = dict()
# Nested loop scans and adds values to res when no value exists for
# a specific radius. If raidus index already exists in res, then there existed
# another value with the same radius on a previous level(above).
for level in d.keys():
for radius in d[level].keys():
if radius not in res.keys():
res[radius] = d[level][radius]
for r in sorted(res.keys()):
print(res[r], end=" ")
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Tree : Top View
You are viewing a single comment's thread. Return to all comments →
""" Node is defined as self.left (the left child of the node) self.right (the right child of the node) self.info (the value of the node) """ def tree_Coords(root, d, radius, level): if not root: return if level not in d.keys(): d[level] = dict() d[level].update({radius: root.info}) tree_Coords(root.left, d, radius-1, level+1) tree_Coords(root.right, d, radius+1, level+1)
def topView(root): radius = 0 level = 0 if not root: return d = dict() tree_Coords(root, d, radius, level) res = dict()