算法篇-二叉树

二叉树的遍历

分为前序、中序和后续的遍历,思想就是利用递归。

前序遍历-中左右

代码:

java 复制代码
    public void travelTree(TreeNode node, List<Integer> resulst) {
        if (node == null){
            return;
        }
		
		// 中
        resulst.add(node.val);
        // 左
        travelTree(node.left, resulst);
        // 右
        travelTree(node.right, resulst);
    }

中序遍历-左中右

代码:

java 复制代码
public void travelTree(TreeNode node, List<Integer> resulst) {
        if (node == null) {
            return;
        }
		// 左
        travelTree(node.left, resulst);
        // 中
        resulst.add(node.val);
        // 右
        travelTree(node.right, resulst);
    }

后序遍历-左右中

代码:

java 复制代码
public void travelTree(TreeNode node, List<Integer> resulst) {
        if (node == null) {
            return;
        }
		// 左
        travelTree(node.left, resulst);
        // 右
        travelTree(node.right, resulst);
        // 中
        resulst.add(node.val);
    }

层序遍历

就是一层一层往下遍历就行了。

题目:求一个二叉查找树(BST)的第K大的数

什么是二叉查找树(BST):BST树的特性如下:

解题思路:根据树的特性,对树进行中序遍历,最后取第k大的数即可。

相关推荐
文艺倾年7 小时前
【免训练&测试时扩展】通过任务算术转移思维链能力
人工智能·分布式·算法
上海合宙LuatOS7 小时前
LuatOS核心库API——【fft 】 快速傅里叶变换
java·前端·人工智能·单片机·嵌入式硬件·物联网·机器学习
curry____3037 小时前
dfs全排列和全组合问题
算法·深度优先
爱敲代码的小鱼8 小时前
web后端开发SpringBootWeb的入门:
java·spring boot·spring
想做功的洛伦兹力18 小时前
2026/2/12日打卡
开发语言·c++·算法
大模型玩家七七8 小时前
技术抉择:微调还是 RAG?——以春节祝福生成为例
android·java·大数据·开发语言·人工智能·算法·安全
你撅嘴真丑8 小时前
蛇形填充数组 与 查找最接近的元素
数据结构·c++·算法
那我掉的头发算什么8 小时前
【SpringBoot】统一功能处理详解
java·spring boot·后端·spring
逍遥德8 小时前
编程技能点小记之if-else条件分支合理用法
java·开发语言·代码规范·代码复审·极限编程·代码覆盖率
瞎某某Blinder8 小时前
DFT学习记录[3]:material project api使用方法 mp_api调取与pymatgen保存
java·笔记·python·学习