LeetCode(剑指 Offer)- 54. 二叉搜索树的第k大节点

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 54. 二叉搜索树的第k大节点相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:

解题思路:

相关企业

  • 字节跳动

AC 代码

  • Java
/**
 * Definition for a binary tree node.
 * public class TreeNode 
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x)  val = x; 
 * 
 */

class Solution 

    int th;

    List<Integer> list = new ArrayList<>();

    public int kthLargest(TreeNode root, int k) 
        th = k;
        dfs(root);
        return list.get(k - 1);
    

    void dfs(TreeNode node) 

        if (node == null || list.size() == th) 
            return;
        

        dfs(node.right);
        list.add(node.val);
        dfs(node.left);
    
  • C++
class Solution 
public:
    int kthLargest(TreeNode* root, int k) 
        this->k = k;
        dfs(root);
        return res;
    
private:
    int res, k;
    void dfs(TreeNode* root) 
        if(root == nullptr) return;
        dfs(root->right);
        if(k == 0) return;
        if(--k == 0) res = root->val;
        dfs(root->left);
    
;

以上是关于LeetCode(剑指 Offer)- 54. 二叉搜索树的第k大节点的主要内容,如果未能解决你的问题,请参考以下文章

⭐算法入门⭐《二叉树 - 二叉搜索树》简单10 —— LeetCode 剑指 Offer 54. 二叉搜索树的第k大节点

LeetCode(剑指 Offer)- 54. 二叉搜索树的第k大节点

LeetCode Java刷题笔记—剑指 Offer 54. 二叉搜索树的第k大节点

leetcode-剑指 Offer 55 - II平衡二叉树

[LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II

LeetCode 剑指 Offer 37. 序列化二叉树