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、中序遍历的顺序,先遍历左子树,再遍历右子树,最后遍历根节点。

相关推荐
后端不背锅几秒前
Redis 缓存穿透、击穿、雪崩:一次讲清楚
后端
一叶落4382 分钟前
LeetCode 42. 接雨水(C语言详解)——双指针经典解法
c语言·数据结构·c++·算法·leetcode
寂柒5 分钟前
哈希桶——模拟实现哈希表
数据结构·c++·算法
用户6996228806055 分钟前
PocketBase:3分钟搭建全功能后端的轻量级神器
后端
郝学胜-神的一滴5 分钟前
一序平衡,括号归真:单括号匹配算法的优雅美学
java·前端·数据结构·c++·python·算法
小O的算法实验室6 分钟前
2026年IEEE TCYB SCI1区TOP,电动采摘机器人多目标任务分配:一种分层路径重构方法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
CSDN_kada7 分钟前
杭电网安复试编程Day19
开发语言·c++·算法
猹叉叉(学习版)8 分钟前
【ASP.NET CORE】 11. SignalR
笔记·后端·c#·asp.net·.netcore
CoovallyAIHub8 分钟前
PaveSync:跨国5.2万张图像路面病害基准,7款模型横评(YOLOv8-v12+Faster R-CNN+DETR)
深度学习·算法·计算机视觉
程序边界11 分钟前
从MySQL到国产数据库的真实迁移笔记:那些坑爹的坑和意外的爽点
后端