php网站开发实例报告,简易软件开发工具,都什么企业需要网站吗,云南网站建设首选才力目录
98. 验证二叉搜索树
题解#xff1a;
代码#xff1a;
运行结果#xff1a;编辑 给你一个二叉树的根节点 root #xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含…
目录
98. 验证二叉搜索树
题解
代码
运行结果编辑 给你一个二叉树的根节点 root 判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1 输入root [2,1,3]
输出true示例 2 输入root [5,1,4,null,null,3,6]
输出false
解释根节点的值是 5 但是右子节点的值是 4 。提示 树中节点数目范围在[1, 104] 内-231 Node.val 231 - 1 题解 中序遍历左根右——从小到大所以只需判断当前节点是否大于前一个节点递归 代码有注释关键在于思路的理解和题目的一些注意点 ①初始化pre如果是int类型的可能会出现边界值影响不通过 ②比较部分放的位置决定了这是什么遍历类型该题先遍历左子树就是中序遍历 代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {//中序遍历左根右——从小到大所以只需判断当前节点是否大于前一个节点递归long preLong.MIN_VALUE;//保留前一个数据(初始化为最小值)public boolean isValidBST(TreeNode root) {//终止条件空树一定是有效的二叉搜索树if(rootnull) return true;//中序遍历先遍历左子树if(isValidBST(root.left)false) return false;//pre!null时与当前节点值比较if(preroot.val){return false;}//preroot.val就给他赋上这次节点的值方便下一个节点进行比较pre root.val;return isValidBST(root.right);}
} 运行结果