Connect Nodes at Same Level Python
- Get link
- X
- Other Apps
PROGRAM TO CONECT NODES AT SAME LEVEL
class newnode: def __init__(self, data): self.data = data self.left = self.right = self.nextRight = None # Sets the nextRight of root and calls # connectRecur() for other nodes def connect (p): # Set the nextRight for root p.nextRight = None # Set the next right for rest of # the nodes (other than root) connectRecur(p) # Set next right of all descendents of p. # Assumption: p is a compete binary tree def connectRecur(p): # Base case if (not p): return # Set the nextRight pointer for p's # left child if (p.left): p.left.nextRight = p.right # Set the nextRight pointer for p's right # child p.nextRight will be None if p is # the right most child at its level if (p.right): if p.nextRight: p.right.nextRight = p.nextRight.left else: p.right.nextRight = None # Set nextRight for other nodes in # pre order fashion connectRecur(p.left) connectRecur(p.right) # Driver Codeif __name__ == '__main__': # Constructed binary tree is # 10 # / \ # 8 2 # / # 3 root = newnode(10) root.left = newnode(8) root.right = newnode(2) root.left.left = newnode(3) # Populates nextRight pointer in all nodes connect(root) # Let us check the values of nextRight pointers print("Following are populated nextRight", "pointers in the tree (-1 is printed", "if there is no nextRight)") print("nextRight of", root.data, "is ", end = "") if root.nextRight: print(root.nextRight.data) else: print(-1) print("nextRight of", root.left.data, "is ", end = "") if root.left.nextRight: print(root.left.nextRight.data) else: print(-1) print("nextRight of", root.right.data, "is ", end = "") if root.right.nextRight: print(root.right.nextRight.data) else: print(-1) print("nextRight of", root.left.left.data, "is ", end = "") if root.left.left.nextRight: print(root.left.left.nextRight.data) else: print(-1)
OUTPUT:
Following are populated nextRight pointers in the tree (-1 is printed if there is no nextRight) nextRight of 10 is -1 nextRight of 8 is 2 nextRight of 2 is -1 nextRight of 3 is -1
- Get link
- X
- Other Apps
Comments
Post a Comment