【算法二十七】230. 二叉搜索树中第 K 小的元素 199. 二叉树的右视图

230. 二叉搜索树中第 K 小的元素

递归:

java 复制代码
class Solution {
    private int ans;
    private int k;

    public int kthSmallest(TreeNode root, int k) {
        this.k = k;
        dfs(root);
        return ans;
    }

    private void dfs(TreeNode node){
        if(node == null || k<=0){
            return;
        }
        dfs(node.left);
        if(--k == 0){
            ans = node.val;
        }
        dfs(node.right);
    }
}

时间复杂度:O(N)

空间复杂度:O(N)

199. 二叉树的右视图

递归:

java 复制代码
class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        List<Integer> ans = new ArrayList<>();
        int depth = 0;
        dfs(root,0,ans);
        return ans;   
    }

    private void dfs(TreeNode node,int depth,List<Integer> ans){
        if(node == null){
            return;
        }

        if(depth == ans.size()){
            ans.add(node.val);
        }

        dfs(node.right,depth+1,ans);
        dfs(node.left,depth+1,ans);
    }
}

时间复杂度:O(N)

空间复杂度:O(N)

相关推荐
IronMurphy5 小时前
【算法五十七】146. LRU 缓存
算法·缓存
凌波粒6 小时前
LeetCode--108.将有序数组转换为二叉搜索树(二叉树)
算法·leetcode·职场和发展
liulilittle6 小时前
KCC:在 BBR 思路上的一次探索
网络·tcp/ip·算法·bbr·通信·拥塞控制·kcc
浦信仿真大讲堂6 小时前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
点云侠6 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法
兰令水7 小时前
leecodecode【面试150】【2026.6.13打卡-java版本】
java·算法·leetcode
临沂堇7 小时前
刷题日志 | Leetcode Hot 100 哈希
算法·leetcode·哈希算法
玉小格7 小时前
一次关于Python的总结
算法
伊甸37 小时前
从企业级项目学敏感词过滤:DFA算法与双层缓存实战
java·算法·缓存
bIo7lyA8v7 小时前
算法中的随机化思想及其复杂度收益评估的技术8
算法