PostOrder Traversal of Tree in Java | Tree Problem

4 years ago Lalit Bhagtani 0

Problem Statement

You have given a binary tree, return the postorder traversal of its node values.

Example 

postorder traversal

Post order traversal of above binary tree is [2, 6, 9, 5, 8, 15, 1, 7, 20, 3] 

Algorithm 

Postorder traversal is also known as postfix traversal. In postorder traversal, we recursively process all the nodes of a tree. First we traverse the left subtree, then the right subtree and finally the root node. (Left – Right – Root) 

Program 

import java.util.ArrayList;
import java.util.List;

public class PostOrderTraversal {

	public static void main(String[] args) {
		
		PostOrderTraversal pot = new PostOrderTraversal();
		
		TreeNode node = new TreeNode(1);
		node.left = new TreeNode(2);
		node.right = new TreeNode(3);		
		
		node.left.left = new TreeNode(4);
		node.left.right = new TreeNode(5);	
		
		node.right.left = new TreeNode(6);
		node.right.right = new TreeNode(7);	
		
		List<Integer> result = pot.traversal(node);
		result.stream().forEach(System.out::print);
	}
	
	public List<Integer> traversal(TreeNode root) {
        List<Integer> result = new ArrayList<>();
        postOrder(root, result);
        return result;
    }
    
    public void postOrder(TreeNode node, List<Integer> result){        
        if(node == null) return;        
        postOrder(node.left, result);
        postOrder(node.right, result);
        result.add(node.val);
    }	
	
	public static class TreeNode {		
		int val;
		TreeNode left;
		TreeNode right;
		
		TreeNode(int x) {
			val = x;
		}
	}
}

Result

4526731

Similar Post

  1. PostOrder Traversal of Tree
  2. Same Tree
  3. Sum of all Left Leaves

If you liked it, please share your thoughts in a comments section and share it with others too.