1、二叉树后序遍历
#递归形式
public void postOrderTraverse1(TreeNode root){
if(root!=null){
postOrderTraverse1(root.left);
postOrderTraverse1(root.right);
System.out.print(root.val);
}
}
非递归(迭代算法)
private Stack<TreeNode> postSearch2(TreeNode root) {
    Stack<TreeNode> stack1 = new Stack<>();
    Stack<TreeNode> stack2 = new Stack<>();
    if(root==null) return stack2;
    stack1.push(root);
    while (!stack1.isEmpty()){
        TreeNode node = stack1.pop();
        stack2.push(node);
        if(node.left!=null){
            stack1.push(node.left);
        }
        if(node.right!=null){
            stack1.push(node.right);
        }
    }
    return stack2;
}
京公网安备 11010502036488号