二叉搜索树的第k大节点(简单难度)

简介: 二叉搜索树的第k大节点(简单难度)

目录

题目概述(简单难度)2.png

题目链接

思路与代码

思路展现

思路建议大家还是看K神的解答即可:

点我进入解答

代码示例

class Solution {
    int res,k;
    //注意kthLargest方法要放在dfs方法前,因为涉及到k的赋值
    public int kthLargest(TreeNode root, int k) {
        this.k = k;
        dfs(root);
        return res;
    }
    public void dfs(TreeNode root) {
        if(root == null) {
            return;
        }
        dfs(root.right);
        if(k == 0) {
            return;
        }
        if(--k == 0) {
           res = root.val;
        }
        dfs(root.left);
    }
}

时间复杂度 O(N) : 当树退化为链表时(全部为右子节点),无论 k 的值大小,递归深度都为 N ,占用 O(N)时间。

空间复杂度 O(N): 当树退化为链表时(全部为右子节点),系统使用 O(N) 大小的栈空间。

相关文章
|
7月前
|
存储 算法 编译器
【C++入门到精通】C++入门 —— 红黑树(自平衡二叉搜索树)
【C++入门到精通】C++入门 —— 红黑树(自平衡二叉搜索树)
37 1
|
7月前
|
存储 机器学习/深度学习 算法
【C++入门到精通】C++入门 —— AVL 树(自平衡二叉搜索树)
【C++入门到精通】C++入门 —— AVL 树(自平衡二叉搜索树)
38 2
|
7月前
[leedcode]刷题有感 二叉树的深度、节点数量、与平衡二叉树2
[leedcode]刷题有感 二叉树的深度、节点数量、与平衡二叉树2
|
7月前
[leedcode]刷题有感 二叉树的深度、节点数量、与平衡二叉树1
[leedcode]刷题有感 二叉树的深度、节点数量、与平衡二叉树
|
7月前
leetcode-1382:将二叉搜索树变平衡
leetcode-1382:将二叉搜索树变平衡
40 0
学习平衡搜索二叉树(AVL树)【日志】
学习平衡搜索二叉树(AVL树)【日志】
83 0
二叉搜索树的最近公共祖先(简单难度)
二叉搜索树的最近公共祖先(简单难度)
79 0
二叉搜索树的最近公共祖先(简单难度)
|
算法
链表的中间节点(简单难度)
链表的中间节点(简单难度)
122 0
链表的中间节点(简单难度)
|
算法 测试技术
平衡二叉树(简单难度)
平衡二叉树(简单难度)
100 0
平衡二叉树(简单难度)