144. 二叉树的前序遍历
题目:给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,2,3]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
示例 4:
输入:root = [1,2]
输出:[1,2]
class Solution {
public:
void traversal(TreeNode* cur, vector<int> & result)
{
if(cur == nullptr) return;
result.push_back(cur->val);
traversal(cur->left,result);
traversal(cur->right,result);
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
traversal(root, result);
return result;
}
};
时间复杂度:O(n),其中 n是二叉树的节点数。每一个节点恰好被遍历一次。
空间复杂度:O(n),为递归过程中栈的开销,平均情况下为O(logn),最坏情况下树呈现链状,为 O(n)。
[[C++]Leetcode超高效刷题顺序及题目详解笔记(持续更新中)]