Leaf nodes from Preorder of BST Python

PROGRAM TO FIND LEAF NODES FROM PREORDER OF A BST



def leafNode(preorder, n):
    s = [] 
    i = 0
    for j in range(1, n):
        found = False
        if preorder[i] > preorder[j]: 
            s.append(preorder[i])
  
        else:
            while len(s) != 0:
                if preorder[j] > s[-1]:
                    s.pop(-1)
                    found = True
                else:
                    break
  
        if found: 
            print(preorder[i], end = " ")
        i += 1
  
    # Since rightmost element is 
    # always leaf node. 
    print(preorder[n - 1])
  
# Driver code 
if __name__ == '__main__':
    preorder = [890, 325, 290, 530, 965
    n = len(preorder) 
  
    leafNode(preorder, n)


OUTPUT:
290 530 965

Comments

Popular posts from this blog

Solve the Sudoku Python

Solve the Sudoku Java

Find Duplicates Java