题目:二叉树的前序遍历
问题描述:给出一棵二叉树,返回其节点值的前序遍历。
思路:用递归的思想,按先跟后左子树最后右子树的方式将节点的值一个个存到vector容器里。
代码:
class Solution {
public:
vector<int> r;
/**
* @param root: The root of binary tree.
* @return: Preorder in vector which contains node values.
*/
vector<int> preorderTraversal(TreeNode *root) {
// write your code here
if(root!=NULL) {
r.push_back(root->val);
preorderTraversal(root->left);
preorderTraversal(root->right);
}
return r;
}
};
思路:这道题最坑人的地方是在定义容器没有在题目指定位置写,而是写在函数外面,有点没想明白为啥这么做,感觉在函数里面也应该可以啊,但是就是过不了……