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.
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 →
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()