二叉树遍历方式 总结

1、二叉树前序遍历 递归与迭代方式。

根左右,遍历把根push进stack,然后push 右子树,左子树。由于根在(根左右)前面,每次子遍历根都在前面,压进去就出来了,可忽略根的属性。由于栈的特性。左右子树压进去的顺序相反。可参考    。

背诵:push(root)         while栈不空 弹出 压右左

    public static void preOrderRecur(TreeNode head) {
        if (head == null) {
            return;
        }
        System.out.print(head.value + " ");//res.add(head.val)
        preOrderRecur(head.left);
        preOrderRecur(head.right);
    }
------------------------------------------------------------

  public void preorderTraversal(TreeNode p) {
        if (p == null) return;
        Deque<TreeNode> stack = new ArrayDeque<>();
        stack.push(p);
        while (!stack.isEmpty()) {
            TreeNode tmp = stack.poll();
            Syst

猜你喜欢

转载自blog.csdn.net/yu1336199790/article/details/111395857