算法篇-二叉树

二叉树的遍历

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

前序遍历-中左右

代码:

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大的数即可。

相关推荐
u0104058361 分钟前
Spring Boot中的依赖注入和控制反转
java·spring boot·后端
猫猫爱吃小鱼粮4 分钟前
57、Flink 的项目配置概述
java·flink
龙洋静5 分钟前
RabbitMq - Java客户端基础【简单案例 +Work模型】
java·rabbitmq·java-rabbitmq
想要打 Acm 的小周同学呀5 分钟前
ThreadLocal学习
android·java·学习
碧海蓝天202211 分钟前
二分法查找有序表的通用算法(可查链表,数组,字符串...等等)
数据结构·算法·链表
Jeady512 分钟前
Gradle使用插件SonatypeUploader-v2.6上传到maven组件到远程中央仓库
java·maven
Naix157317 分钟前
Eclipse运行main函数报 launch error
java·ide·eclipse
qq_4543847118 分钟前
Maven的安装与配置
java·maven·intellij idea
小悟空GK26 分钟前
Filter和Listener
java
randy.lou26 分钟前
GRPC使用之ProtoBuf
java·rpc