[LeetCode][LCR174] 寻找二叉搜索树中的目标节点

题目

LCR 174. 寻找二叉搜索树中的目标节点

某公司组织架构以二叉搜索树形式记录,节点值为处于该职位的员工编号。请返回第 cnt 大的员工编号。

示例 1:
在这里插入图片描述

输入:root = [7, 3, 9, 1, 5], cnt = 2
       7
      / \
     3   9
    / \    
   1   5 
   输出:7

示例 2:
在这里插入图片描述

输入: root = [10, 5, 15, 2, 7, null, 20, 1, null, 6, 8],
cnt = 4
       10
      / \
     5   15
    / \    \    
   2   7    20   
   /   / \   
  1   6   8 
  输出: 8 

提示:

1 ≤ cnt ≤ 二叉搜索树元素个数

解法

  1. 对二叉搜索树来说,中序遍历可得有序序列
  2. 题目要求寻找第 cnt 大的节点,可以采用先传入右子树的中序遍历
  3. 设置标志位,一旦寻找到目标节点立刻返回(剪枝)

class Solution {
public:
    int count=0, n=0, ans=0;
    bool haveFound=false;
    void dfs(TreeNode* root){
        if(haveFound) return;
        if(!root) return;
        dfs(root->right);
        ++n;
        if(n==count){
            ans=root->val;
            haveFound=true;
        } 
        dfs(root->left);
    }
    int findTargetNode(TreeNode* root, int cnt) {
        count = cnt;
        dfs(root);
        return ans;
    }
};

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 11:26:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 11:26:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 11:26:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 11:26:02       20 阅读

热门阅读

  1. vue3+elementPlus项目支持设置默认附件

    2024-03-13 11:26:02       18 阅读
  2. Kotlin Retrofit 网络请求

    2024-03-13 11:26:02       19 阅读
  3. Unity 地图数据生成

    2024-03-13 11:26:02       21 阅读
  4. Spring Boot- Validation

    2024-03-13 11:26:02       16 阅读
  5. LeetCode题练习与总结:搜索旋转排序数组

    2024-03-13 11:26:02       17 阅读
  6. 【leetcode热题】反转字符串中的单词

    2024-03-13 11:26:02       21 阅读
  7. 焦点调制网络

    2024-03-13 11:26:02       17 阅读
  8. 蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

    2024-03-13 11:26:02       18 阅读
  9. Kafka吞吐量高的原因

    2024-03-13 11:26:02       16 阅读
  10. 阿里云国际修改域名绑定的DDoS高防服务器

    2024-03-13 11:26:02       19 阅读
  11. RUST 每日一省:迭代器1

    2024-03-13 11:26:02       18 阅读
  12. 【Rust日报】Ascent:在 Rust 中嵌入的逻辑编程语言

    2024-03-13 11:26:02       18 阅读