Instagram
youtube
Facebook
Twitter

Postorder Traversal| Tree

Task(Easy)

Complete the postOrder function in the editor below. It received 1 parameter: a pointer to the root of a binary tree. It must print the values in the tree's postorder traversal as a single line of space-separated values.

Input Format
Our test code passes the root node of a binary tree to the postOrder function.

Constraints

1<Nodes in the tree ≤ 500

Output Format
Print the tree's postorder traversal as a single line of space-separated values.

Sample Input

1
\
2
\
5
/ \
3    6

\

4

Sample Output

4 3 6 5 2 1

Explanation

The postorder traversal is shown.

SOLUTION 1

def postOrder(root):

    result = []

    def traverse(node):

        if not node:

            return

        traverse(node.left)

        traverse(node.right)

        result.append(str(node.info))   

    traverse(root)

    print(" ".join(result))

SOLUTION 2

def postOrder(root):

    # Preorder and reverse

    stack =[]

    res = []

    cur = root

    while stack or cur:

        if cur:

            stack.append(cur.left)

            res.append(cur.info)

            cur = cur.right

        else:

            cur = stack.pop()

    res.reverse()

    string = ' '.join(str(x) for x in res)

    print(string)