File tree Expand file tree Collapse file tree
src/in/knowledgegate/dsa/binarytree Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88
99/**
1010 * Write Inorder traversal of a binary tree using
11- * recursive approach
11+ * iterative approach
1212 */
1313public class InorderTraversalIterative {
1414 public List <Integer > inorderTraversal (TreeNode root ) {
Original file line number Diff line number Diff line change 1+ package in .knowledgegate .dsa .binarytree ;
2+
3+ import in .knowledgegate .dsa .binarytree .model .TreeNode ;
4+
5+ import java .util .ArrayList ;
6+ import java .util .List ;
7+ import java .util .Stack ;
8+
9+ /**
10+ * Write Postorder traversal of a binary tree
11+ * using iterative approach
12+ */
13+ public class PostorderTraversalIterative {
14+ public List <Integer > iterativePostorder (TreeNode root ) {
15+ List <Integer > result = new ArrayList <>();
16+ if (root == null ) {
17+ return result ;
18+ }
19+
20+ Stack <TreeNode > s1 = new Stack <>();
21+ Stack <TreeNode > s2 = new Stack <>();
22+ s1 .push (root );
23+
24+ while (!s1 .isEmpty ()) {
25+ TreeNode temp = s1 .pop ();
26+ s2 .push (temp );
27+
28+ if (temp .left != null ) {
29+ s1 .push (temp .left );
30+ }
31+ if (temp .right != null ) {
32+ s1 .push (temp .right );
33+ }
34+ }
35+
36+ while (!s2 .isEmpty ()) {
37+ result .add (s2 .pop ().val );
38+ }
39+
40+ return result ;
41+ }
42+ }
Original file line number Diff line number Diff line change 1+ package in .knowledgegate .dsa .binarytree ;
2+
3+ import in .knowledgegate .dsa .binarytree .model .TreeNode ;
4+
5+ import java .util .ArrayList ;
6+ import java .util .List ;
7+
8+ /**
9+ * Write Postorder traversal of a binary tree
10+ * using recursive approach
11+ */
12+ public class PostorderTraversalRecursive {
13+ public List <Integer > postorderTraversal (TreeNode root ) {
14+ List <Integer > list = new ArrayList <>();
15+ postorderTraversal (root , list );
16+ return list ;
17+ }
18+
19+ private void postorderTraversal (TreeNode root ,
20+ List <Integer > result ) {
21+ if (root == null ) return ;
22+ postorderTraversal (root .left , result );
23+ postorderTraversal (root .right , result );
24+ result .add (root .val );
25+ }
26+ }
Original file line number Diff line number Diff line change 1+ package in .knowledgegate .dsa .binarytree ;
2+
3+ import in .knowledgegate .dsa .binarytree .model .TreeNode ;
4+
5+ import java .util .ArrayList ;
6+ import java .util .List ;
7+ import java .util .Stack ;
8+
9+ /**
10+ * Write Preorder traversal of a binary tree using
11+ * iterative approach
12+ */
13+ public class PreorderTraversalIterative {
14+ public List <Integer > iterativePreorder (TreeNode root ) {
15+ List <Integer > result = new ArrayList <>();
16+ if (root == null ) {
17+ return result ;
18+ }
19+
20+ Stack <TreeNode > stack = new Stack <>();
21+ stack .push (root );
22+ while (!stack .isEmpty ()) {
23+ TreeNode temp = stack .pop ();
24+ result .add (temp .val );
25+
26+ if (temp .right != null ) {
27+ stack .push (temp .right );
28+ }
29+ if (temp .left != null ) {
30+ stack .push (temp .left );
31+ }
32+ }
33+
34+ return result ;
35+ }
36+ }
Original file line number Diff line number Diff line change 1+ package in .knowledgegate .dsa .binarytree ;
2+
3+ import in .knowledgegate .dsa .binarytree .model .TreeNode ;
4+
5+ import java .util .ArrayList ;
6+ import java .util .List ;
7+
8+ /**
9+ * Write Preorder traversal of a binary tree using
10+ * recursive approach
11+ */
12+ public class PreorderTraversalRecursive {
13+ public List <Integer > preorderTraversal (TreeNode root ) {
14+ List <Integer > result = new ArrayList <>();
15+ preorderTraversal (root , result );
16+ return result ;
17+ }
18+
19+ public void preorderTraversal (TreeNode root ,
20+ List <Integer > result ) {
21+ if (root == null ) return ;
22+ result .add (root .val );
23+ preorderTraversal (root .left , result );
24+ preorderTraversal (root .right , result );
25+ }
26+ }
You can’t perform that action at this time.
0 commit comments