File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ // Iterative
3
+ public List <Integer > postorderTraversal (TreeNode root ) {
4
+ Stack <TreeNode > stack = new Stack <>();
5
+ stack .add (root );
6
+ Stack <Boolean > visit = new Stack <>();
7
+ visit .add (false );
8
+
9
+ List <Integer > res = new ArrayList <>();
10
+
11
+ while (!stack .isEmpty ()){
12
+ TreeNode curr =stack .pop ();
13
+ boolean v = visit .pop ();
14
+ if (curr != null ){
15
+ if (v != false ){
16
+ res .add (curr .val );
17
+ }else {
18
+ stack .add (curr );
19
+ visit .add (true );
20
+ stack .add (curr .right );
21
+ visit .add (false );
22
+ stack .add (curr .left );
23
+ visit .add (false );
24
+ }
25
+ }
26
+ }
27
+ return res ;
28
+ }
29
+ }
30
+
31
+ class Solution {
32
+ // Recursive
33
+ public void postorder (TreeNode root , List <Integer > res ){
34
+ if (root == null ) return ;
35
+
36
+ postorder (root .left , res );
37
+ postorder (root .right , res );
38
+ res .add (root .val );
39
+ }
40
+ public List <Integer > postorderTraversal (TreeNode root ) {
41
+ List <Integer > res = new ArrayList <>();
42
+
43
+ postorder (root , res );
44
+ return res ;
45
+ }
46
+ }
You can’t perform that action at this time.
0 commit comments