【力扣每日一题】力扣144二叉树的前序遍历

题目来源

力扣144二叉树的前序遍历

题目概述

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

思路分析

二叉树的前序遍历可以使用递归或迭代方式实现。

代码实现

java实现

java使用递归实现

public class Solution {
    List res = new ArrayList<>();
    public List preorderTraversal(TreeNode root) {
        if (root == null) {
            return res;
        }
        res.add(root.val);
        preorderTraversal(root.left);
        preorderTraversal(root.right);
        return res;
    }
}

c++实现

c++使用迭代实现

class Solution {
public:
    vector preorderTraversal(TreeNode* root) {
        vector res = vector();
        if (root == nullptr) {
            return res;
        }
        stack stack;
        while (!stack.empty() && root == nullptr) {
            while (root != nullptr) {
                res.push_back(root->val);
                stack.push(root);
                root = root->left;
            }
            root = stack.top()->right;
            stack.pop();
        }
        return res;
    }

你可能感兴趣的:(leetcode,算法,java,c++)