class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> paths; // result
if (root == nullptr) {
return paths;
}
queue<TreeNode*> node_queue;
queue<string> path_queue;
// bfs
while (!node_queue.empty()) {
TreeNode* node = node_queue.front();
string path = path_queue.front();
node_queue.pop();
path_queue.pop();
if (node->left == nullptr && node->right == nullptr) {
paths.push_back(path);
}
else {
if (node->left != nullptr) {
node_queue.push(node->left);
path_queue.push(path + "->" + to_string(node->left->val));
}
if (node->right != nullptr) {
node_queue.push(node->right);
path_queue.push(path + "->" + tostring(node->right->val));
}
}
}
return paths;
}
};
Leetcode 257.二叉树的所有路径
最新推荐文章于 2022-05-21 15:50:38 发布