Binary Tree Paths(Easy)
题目解析
题目给了我们一棵数,让我们遍历树并输出数的每一条路径。
思路
遍历树,我们可以使用递归,通过不断的读取数的孩子来查找路径,直到找到叶子,在一路返回值到根节点。
代码
class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> load;
if(root)
findload(root,"",load);
return load;
}
void findload(TreeNode* root,string p,vector<string> &load){
if(root->left==NULL&&root->right==NULL)
load.push_back(p+to_string(root->val));
if(root->left!=NULL)
findload(root->left,p+to_string(root->val)+"->",load);
if(root->right!=NULL)
findload(root->right,p+to_string(root->val)+"->",load);
}
};
结果
小结
题目主要考察树的遍历,所以只要把树的每个地方都走一边基本没什么问题,要注意题目要求的输出格式。