祗疼妳一个 发表于 2024-12-8 04:04:12

二叉树的深度搜索专题一>二叉搜索树中第 K 小的元素

题目: 
https://i-blog.csdnimg.cn/direct/48fb21ed53024a4f909dbf7841904acd.png 
剖析: 
采用中序遍历+两个全局变量 +剪枝
两个全局变量:count计数,ret返回,搜索二叉树中由于中序遍历是有序的,把K赋值给count,当count==0时就找到第K小的值,就返回ret 
代码: 
class Solution {
    private int count;
    private int ret;

    public int kthSmallest(TreeNode root, int k) {
      count = k;
      dfs(root);
      return ret;
    }

    private void dfs(TreeNode root){
      /**中序遍历+两个全局变量+剪枝
         */

      //剪枝
      if(root == null || count == 0) return;
      dfs(root.left);
      count--;
      if(count == 0) ret = root.val;

      //剪枝
      if(count == 0) return;
      dfs(root.right);
    }
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 二叉树的深度搜索专题一>二叉搜索树中第 K 小的元素