94. Binary Tree Inorder Traversal
/**
* 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 > result = new ArrayList <>();
if (root == null ) return result ;
inorder (root , result );
return result ;
}
private static void inorder (TreeNode n , List <Integer > result ){
if (n == null ) return ;
inorder (n .left , result );
result .add (n .val );
inorder (n .right , result );
}
}
Method 1: Recursion
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
private List <Integer > result ;
public List <Integer > inorderTraversal (TreeNode root ) {
this .result = new ArrayList <>();
dfs (root );
return this .result ;
}
private void dfs (TreeNode node ){
if (node == null ) return ;
dfs (node .left );
this .result .add (node .val );
dfs (node .right );
}
}