美文网首页
算法:判断一棵树是否是平衡二叉树

算法:判断一棵树是否是平衡二叉树

作者: CharlesCT | 来源:发表于2021-03-19 22:29 被阅读0次

题意

判断一颗数是否是平衡二叉树。
平衡二叉树。左孩子节点,总是小于父节点,右孩子节点总是大于父节点。
对于每一个节点都符合这样的特性。

解法

不是很麻烦,对于平衡二叉树来说,它的中序遍历必定是一个升序序列。
直接中序遍历,如果出现后面的节点小于前面必定不是平衡二叉树

  public boolean isValidBST(TreeNode root) {
        TreeNode pre = null;
        Stack<TreeNode> stack = new Stack<>();
        while (!stack.isEmpty() || root != null){
            while (root != null){
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();
            //加入结果
            if (pre != null && pre.val >= root.val)
                return false;
           pre = root; 
            root = root.right ;
        }
        return true;
    }

这里保存的是上一个节点,如果只保存上一个值,需要考虑int值上下界限。有可能输入Integer.MAX_VALUE的这种情况

相关文章

  • 判断一个树是否是BST 求一棵平衡二叉树的最小深度 判断一棵二叉树是否高度平衡

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • LeetCode 力扣 110. 平衡二叉树

    题目描述(简单难度) 判断一棵树是否是平衡二叉树,平衡二叉树定义如下: 它是一棵空树或它的左右两个子树的高度差的绝...

  • 判断一棵树是否是搜索二叉树、判断一棵树是否是完全二叉树

    题目描述 判断一棵树是否是搜索二叉树、判断一棵树是否是完全二叉树 什么是二叉查找树? 二叉查找树(Binary S...

  • 剑指 offer:39、平衡二叉树

    39. 平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解题思路: 平衡二叉树:Wiki:在...

  • 平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 平衡二叉树(Self-balancing binary ...

  • 平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

  • 39、平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

  • 牛客-剑指0ffer-平衡二叉树

    题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。

  • 19.判断二叉平衡树

    题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 代码

网友评论

      本文标题:算法:判断一棵树是否是平衡二叉树

      本文链接:https://www.haomeiwen.com/subject/vfmbcltx.html