递归:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<Integer> list=new ArrayList<Integer>();
public List<Integer> inorderTraversal(TreeNode root) {
if(root==null) return list;
inorderTraversal(root.left);
list.add(root.val);
inorderTraversal(root.right);
return list;
}
}
非递归:
class Solution {
List<Integer> list=new ArrayList<Integer>();
public List<Integer> inorderTraversal(TreeNode root) {
Stack<TreeNode> stack=new Stack<TreeNode>();
TreeNode flag=root;
while(flag!=null || !stack.isEmpty()){
if(flag!=null){
stack.push(flag);
flag=flag.left;
}else{
flag=stack.pop();
list.add(flag.val);
flag=flag.right;
}
}
return list;
}
}