二叉树的前序遍历

原题:

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

示例 1: 144. 二叉树的前序遍历 - 图1

  1. 输入:root = [1,null,2,3]
  2. 输出:[1,2,3]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

示例 4: 144. 二叉树的前序遍历 - 图2

输入:root = [1,2]
输出:[1,2]

示例 5: 144. 二叉树的前序遍历 - 图3

输入:root = [1,null,2]
输出:[1,2]

提示:

  • 树中节点数目在范围 [0, 100]
  • -100 <= Node.val <= 100

进阶:递归算法很简单,你可以通过迭代算法完成吗?

解题方法:

解法一:

class Solution {
public:
    vector<int> preorderTraversal(TreeNode* root) {
        vector<int> vec;
        Preorder(root,vec);
        return vec;
    }

    void Preorder(TreeNode* root,vector<int>& vec)
    {
        if(!root) return;
        vec.push_back(root->val);
        Preorder(root->left,vec);
        Preorder(root->right,vec);
    }
};

做题小结:

主要是熟悉遍历方法,没有太大难度。