Java solution. Easy recursive approach with few lines of code with description

class Solution {
public List postorderTraversal(TreeNode root) {

    List<Integer> output = new ArrayList<Integer>();
    traversePostOrder(root,output);
    return output;
}

private TreeNode traversePostOrder(TreeNode root,List<Integer> output){
    if(root==null)
        return root;
     //traverse left subtree first
     root.left = traversePostOrder(root.left,output);
     //traverse right subtree second
     root.right =  traversePostOrder(root.right,output);
     //visit root node
     output.add(root.val);//In post order the value is added after  traversing left and right 
     return root;
}

}

Comments (0)