From 626f44a031833e2a52bb71de19dbc7c38b6b5d89 Mon Sep 17 00:00:00 2001 From: Anukriti Banerjee <37472545+Anukriti167@users.noreply.github.com> Date: Wed, 17 May 2023 10:46:39 +0530 Subject: [PATCH] Create 0145-binary-tree-postorder-traversal Adding the Java solutions for the Postorder traversal --- java/0145-binary-tree-postorder-traversal | 46 +++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 java/0145-binary-tree-postorder-traversal diff --git a/java/0145-binary-tree-postorder-traversal b/java/0145-binary-tree-postorder-traversal new file mode 100644 index 000000000..e87a4d314 --- /dev/null +++ b/java/0145-binary-tree-postorder-traversal @@ -0,0 +1,46 @@ +class Solution { + // Iterative + public List postorderTraversal(TreeNode root) { + Stack stack = new Stack<>(); + stack.add(root); + Stack visit = new Stack<>(); + visit.add(false); + + List res = new ArrayList<>(); + + while(!stack.isEmpty()){ + TreeNode curr=stack.pop(); + boolean v = visit.pop(); + if(curr != null){ + if(v != false){ + res.add(curr.val); + }else{ + stack.add(curr); + visit.add(true); + stack.add(curr.right); + visit.add(false); + stack.add(curr.left); + visit.add(false); + } + } + } + return res; + } +} + +class Solution { + // Recursive + public void postorder(TreeNode root, List res){ + if(root == null) return; + + postorder(root.left, res); + postorder(root.right, res); + res.add(root.val); + } + public List postorderTraversal(TreeNode root) { + List res = new ArrayList<>(); + + postorder(root, res); + return res; + } +}