题意:求二叉树的所有跟到叶子的路径。
题解:BFS或者DFS都可以。
class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
queue<TreeNode *> q1;
queue<string> q2;
vector<string> v;
while(!q1.empty()) q1.pop();
while(!q2.empty()) q2.pop();
v.clear();
if(root == NULL) return v;
q1.push(root);
string temp;
temp = to_string(root->val);
q2.push(temp);
while(!q1.empty())
{
TreeNode *cur = q1.front();
string curstring = q2.front();
q1.pop();q2.pop();
if(cur->left == NULL && cur->right == NULL)
{
v.push_back(curstring);
continue;
}
if(cur->left != NULL)
{
q1.push(cur->left);
stringstream ss;
ss << cur->left->val;
string temp;
ss >> temp;
q2.push(curstring + "->" + temp);
}
if(cur->right != NULL)
{
q1.push(cur->right);
stringstream ss;
ss << cur->right->val;
string temp;
ss >> temp;
q2.push(curstring + "->" + temp);
}
}
return v;
}
};