LeetCode 144.二叉树的前序遍历

题目 :给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

思路:根 左 右

代码

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> preorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        dfs(res, root);
        return res;
    }
    private void dfs(List<Integer> res, TreeNode root) {
        if (root == null)
            return;
        res.add(root.val);
        dfs(res, root.left);
        dfs(res, root.right);
    }
}

性能

时间复杂度o(n)

空间复杂度o(n)

相关推荐
C_V_Better11 分钟前
Java 接收 XML 格式参数并转换为 JSON
xml·java·开发语言·数据结构·后端·算法·json
水瓶丫头站住26 分钟前
排序算法归类整理对比
数据结构·算法·排序算法
pchmi1 小时前
C#快速幂算法
算法·c#
AAIshangyanxiu1 小时前
基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局
python·算法·arcgis pro·invest模型·生态安全格局·usle
OKkankan2 小时前
排序(数据结构)
c语言·数据结构·c++·算法
m0_663234015 小时前
Rust并发编程实践:10分钟入门系统级编程
python·算法·rust
zdsji6 小时前
如何制作安装包打包软件
算法·rust·vue
糖葫芦君6 小时前
TD时间差分算法
人工智能·算法
Ronin-Lotus7 小时前
嵌入式硬件篇---常用的汇编语言指令
单片机·嵌入式硬件·职场和发展·c·汇编语言
没明白白9 小时前
插入排序:一种简单而直观的排序算法
java·算法·排序算法