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;
    }
}
相关推荐
Han.miracle1 小时前
万字详解 Lombok 构造方法注解:@AllArgsConstructor 非空校验实现与最佳实践
java·前端·数据库
倾心琴心1 小时前
【agent辅助pcb routing coding学习】实践5 kicad类按类别理解
算法·agent·pcb·eda·routing
Frostnova丶2 小时前
LeetCode 50. Pow(x, n)
算法·leetcode
爱敲代码的小鱼2 小时前
springboot案例:
java·spring boot·后端
lierenvip2 小时前
【语义分割】12个主流算法架构介绍、数据集推荐、总结、挑战和未来发展
算法·架构
三块可乐两块冰2 小时前
机器学习笔记一
笔记·算法·机器学习
hashiqimiya2 小时前
spring框架springbean依赖及单一项目
java·前端·spring
凤年徐2 小时前
优选算法——滑动窗口2
数据结构·c++·算法