//iterative
public ArrayList<Integer> inorderTraversal(TreeNode root) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList<Integer> result = new ArrayList<Integer>();
if(root == null) return result;
Stack<TreeNode> stack = new Stack<TreeNode>();
stack.push(root);
while(!stack.empty()) {
root = stack.peek();
if(root.left != null) {
TreeNode tmp = root.left;
root.left = null;
stack.push(tmp);
}else {
root = stack.pop();
result.add(root.val);
if(root.right != null) stack.push(root.right);
}
}
return result;
}
//recursive
public ArrayList<Integer> inorderTraversal(TreeNode root) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList<Integer> result = new ArrayList<Integer>();
help(root, result);
return result;
}
public void help(TreeNode root, ArrayList<Integer> result) {
if(root == null) return;
if(root.left != null) help(root.left, result);
result.add(root.val);
if(root.right != null) help(root.right, result);
}
Binary Tree Inorder Traversal
最新推荐文章于 2022-03-31 17:31:26 发布
