LeetCode第94题二叉树的中序遍历

继续打卡算法题,今天学习的是LeetCode第94题二叉树的中序遍历,这道题目是道简单题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码思维和编码能力有一些提升。

分析一波题目

哈哈,遍历树的题目,我们都可以使用递归法,和回溯算法类似,本题是中序遍历,记住按左根右节点的顺序遍历,就是父节点要在遍历的中间。

本题解题技巧

1、记住中序遍历的顺序,先找左子树,再找根节点,再找右子树

编码解决

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> result = new ArrayList<>();
        dfs(result, root);
        return result;

    }

    public void dfs(List<Integer> result, TreeNode node) {

       if(node == null) {
           return;
       }

       TreeNode left = node.left;
       //遍历左子树
       dfs(result, left);
        //遍历根节点
       int v = node.val;
       result.add(v);

        TreeNode right = node.right;
        //遍历右子树
       dfs(result, right);
    }
}

总结

1、递归法遍历树是比较好理解的,代码也比较简洁,我们记住这种解法,可以解决很多树相关的题目。

2、中序遍历的顺序,先遍历左子树,再遍历右子树,最后遍历根节点。

相关推荐
AI科技星8 分钟前
万能学习方法论的理论建构与多领域适配性研究(乖乖数学)
人工智能·学习·算法·机器学习·平面·数据挖掘
wqww_114 分钟前
springboot 使用websocket来记录移动人物坐标
spring boot·后端·websocket
Ashore11_20 分钟前
蓝桥杯16届Java研究生组
java·算法·蓝桥杯
一只幸运猫.20 分钟前
Rust实用工具特型-Clone
开发语言·后端·rust
6Hzlia23 分钟前
【Hot 100 刷题计划】 LeetCode 76. 最小覆盖子串 | C++ 滑动窗口题解
c++·算法·leetcode
像素猎人27 分钟前
蓝桥杯OJ2049蓝桥勇士【动态规划】【dp[n]不是符合题意的答案,只是以an结尾的子问题的答案】
c++·算法·蓝桥杯·动态规划·区间dp
羊小猪~~28 分钟前
LLM--SFT简介
python·考研·算法·ai·大模型·llm·微调
0xDevNull32 分钟前
Java BigDecimal 完全指南:从入门到精通
java·开发语言·后端
无心水36 分钟前
17、Java内存溢出(OOM)避坑指南:三个典型案例深度解析
java·开发语言·后端·python·架构·java.time·java时间处理
广州灵眸科技有限公司39 分钟前
瑞芯微(EASY EAI)RV1126B 人脸98关键点算法识别
开发语言·科技·嵌入式硬件·物联网·算法·php