中叙遍历的非递归实现---利用栈

//中叙遍历的非递归实现---利用栈
    public void inOrder(TreeNode root){
        Stack<TreeNode> stack = new Stack<TreeNode>();
        TreeNode p = root;
        while (p!=null || !stack.isEmpty()) {
            while (p!=null) {
                stack.push(p);
                p=p.left;
            }
            if (!stack.isEmpty()) {
                p=stack.pop();
                System.out.println(p.val);
                p=p.right;
            }
            
        }
        
    }

猜你喜欢

转载自blog.csdn.net/wwzheng16/article/details/81015170