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

打印 上一主题 下一主题

主题 990|帖子 990|积分 2972

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目: 
  
 
  
  剖析: 
  采用中序遍历+两个全局变量 +剪枝
  两个全局变量:count计数,ret返回,搜索二叉树中由于中序遍历是有序的,把K赋值给count,当count==0时就找到第K小的值,就返回ret 
  
  代码: 
  1. class Solution {
  2.     private int count;
  3.     private int ret;
  4.     public int kthSmallest(TreeNode root, int k) {
  5.         count = k;
  6.         dfs(root);
  7.         return ret;
  8.     }
  9.     private void dfs(TreeNode root){
  10.         /**中序遍历+两个全局变量+剪枝
  11.          */
  12.         //剪枝
  13.         if(root == null || count == 0) return;
  14.         dfs(root.left);
  15.         count--;
  16.         if(count == 0) ret = root.val;
  17.         //剪枝
  18.         if(count == 0) return;
  19.         dfs(root.right);
  20.     }
  21. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表