给定一个二叉搜索树的根节点root和一个整数k请你设计一个算法查找其中第k小的元素k从 1 开始计数。示例 1输入root [3,1,4,null,2], k 1输出1示例 2输入root [5,3,6,2,4,null,null,1], k 3输出3提示树中的节点数为n。1 k n 1040 Node.val 104验证1、当前节点小于他的右子树节点大于左子树的节点然后遍历整颗树2、如果该二叉树的左子树不为空则左子树上所有节点的值均小于它的根节点的值 若它的右子树不空则右子树上所有节点的值均大于它的根节点的值它的左右子树也为二叉搜索树。3、判断节点是否满足大小需要维护一个范围的区间。先遍历根节点根节点的范围是正无穷到负无穷左子节点的范围是-无穷根节点大小右子节点的范围是根节点大小正无穷以此类推。bool comPareNode(TreeNode* node,long long left,long long right){ if(!node) return true; if(node-valleft||node-valright) return false; return comPareNode(node-left,left,node-val)comPareNode(node-right,node-val,right); } bool isValidBST(TreeNode* root) { if(!root) return true; return comPareNode(root,LONG_MIN,LONG_MAX); }推荐一个零声教育学习教程个人觉得老师讲得不错分享给大家[LinuxNginx ZeroMQMySQLRedisfastdfsMongoDBZK流媒体CDNP2PK8SDockerTCP/IP协程DPDK等技术内容点击立即学习:链接