Inorder traversal
public class Solution{
class TreeNode{
int val;
TreeNode left, right;
public TreeNode(int val){
this.val = val;
this.left = null;
this.right = null;
}
}
/*
left son -> father->right son
*/
//non-recursion
public List<Integer> inOrderTraversal(TreeNode root){
Stack<Integer> stack = new Stack<>();
List<Integer> res = new ArrayList<>();
TreeNode cur = root;
while(cur != null || !stack.isEmpty()){
//add 左侧树到
while(cur != null ){
stack.push(cur);
cur = cur.left;
}
cur = stack.pop();
res.add(cur.val);
cur = cur.right;
}
return res;
}
}
Last updated