### Binary Tree Inorder Traversal - The Coding Shala

Last Updated: 19-Jan-2021
Home >> Data Structures >> Binary Tree Inorder Traversal

In this post, we will learn how to Traverse a Binary Tree in In-Order.

## Binary Tree In-Order Traversal

Given a binary tree, return the inorder traversal of its nodes' values.

Example:
Input: [1,null,2,3]
1
\
2
/
3
Output: [1,3,2]

## In-Order Traversal of Binary Tree in Java

Approach 1

Using Recursion.

Java Program:

```/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> InOrder = new ArrayList<Integer>();
if(root == null) return InOrder;
return InOrder;
}
}
```

Approach 2

Using Stack[DFS].

Java Program:

```/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> ans = new ArrayList<Integer>();
if(root == null) return ans;
Stack<TreeNode> stack = new Stack<TreeNode>();
while(root != null || !stack.empty()){
while(root != null){
stack.push(root);
root = root.left;
}
root = stack.pop();
root = root.right;
}
return ans;
}
}
```

Other Posts You May Like