LeetCode(力扣):二叉树的前序遍历

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> result = new ArrayList<>();
        //空树直接返回结果
        if(root == null){
            return result;
        }
        //新建栈并将根节点放入
        Stack<TreeNode> stack = new Stack<>();
        stack.push(root);

        while(!stack.isEmpty()){
            TreeNode node = stack.pop();
            result.add(node.val);
            //由于栈是先进后出,所以先将右节点放入
            if(node.right != null){
                stack.push(node.right);
            }
            if(node.left != null){
                stack.push(node.left);
            }
        }
        return result;
    }
}
相关推荐
Aaa111114431 分钟前
四类地址 逻辑地址 线性地址 虚拟地址 物理地址
java
小则又沐风a2 分钟前
深入了解进程概念 第二章
java·linux·服务器·前端
程序猿进阶4 分钟前
OpenClaw Mac 安装教程
java·macos·ai·架构·agent·openclaw
变量未定义~5 分钟前
字符串哈希匹配字符串
数据结构·算法·哈希算法
周末也要写八哥9 分钟前
浅谈二叉树的深度优先搜索(DFS)算法
算法·深度优先
凯瑟琳.奥古斯特18 分钟前
信号分类与特性解析
java·开发语言·职场和发展
y = xⁿ20 分钟前
20天速通LeetCodeday17:一维动态规划
算法
JAVA面经实录91721 分钟前
JVM 性能监控 + 全链路分析实战 + 性能优化(完整版)
java·jvm
sheeta199822 分钟前
LeetCode 每日一题笔记 日期:2026.05.17 题目:1306. 跳跃游戏 III
笔记·leetcode
bnmoel25 分钟前
数据结构深度剖析栈与队列:结构、边界实现与进出操作全解析
c语言·数据结构·算法··队列