给定一个二叉树,判断是否平衡二叉树;
所谓的平衡二叉树就是左节点小于根节点,根节点小于右结点,
我们对平衡二叉树进行中序遍历,得到的结果就是一个升序,我们的解题思路也是这个法子
代码如下:
public boolean isValidBST(TreeNode root) { Stack<TreeNode> stack = new Stack<>(); long tmp = Long.MIN_VALUE; while(!stack.isEmpty()||root!=null){ while(root!=null){ stack.push(root); root = root.left; } if(!stack.isEmpty()){ root = stack.pop(); //判断当前结点的值是否大于它的上一个入栈节点 if(root.val<=tmp){ return false; } tmp = root.val * 1L; root = root.right; } } return true; }