Tree 二叉树
Tree Traversal
Iterative
preorder
inorder
核心用 stack,先直接下到底。 逆时针 注意判断条件 (cur!=null || !stack.isEmpty())
public void inorderTraversal(TreeNode root) {
Stack<TreeNode> stack = new Stack<>();
TreeNode cur = root;
while(cur!=null || !stack.isEmpty()){
while(cur!=null){
stack.push(cur);
cur = cur.left;
}
cur = stack.pop();
// 操作
cur = cur.right;
}
}
反向顺时针
public void inorderTraversal(TreeNode root) {
Stack<TreeNode> stack = new Stack<>();
TreeNode cur = root;
while(cur!=null || !stack.isEmpty()){
while(cur!=null){
stack.push(cur);
cur = cur.right;
}
cur = stack.pop();
// 操作
cur = cur.left;
}
}
Last updated
Was this helpful?