算法篇-二叉树

二叉树的遍历

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

前序遍历-中左右

代码:

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

相关推荐
Chase_______2 小时前
【Java杂项】Arrays.asList、List.of 和 new ArrayList:集合可变性避坑
java·windows·list
发际线向北2 小时前
0x07 深入了解JVM虚拟机(JVM异常处理)
java
Seven972 小时前
每个线程只管自己的变量,性能却不如单线程?问题出在缓存行
java
2601_961845153 小时前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
用户531397318173 小时前
「踩坑实录」原来的SQL索引自动优化失败了,线上数据库差点被打挂
java·后端
暖阳华笺3 小时前
【高频考点】K-Means聚类算法
c++·算法·机器学习·kmeans·聚类
SimonKing3 小时前
线程池面试被问到怕?看完这篇让他当场沉默
java·后端·程序员
下午写HelloWorld3 小时前
后量子密码算法:协同签名研究综述
算法·密码学·后量子·协同签名
JAVA面经实录9173 小时前
NoSQL 非关系型数据库【简洁版】
java·数据库·nosql
小蒋学算法3 小时前
算法-计算右侧小于当前元素的个数-分治&归并思想
java·数据结构·算法