LeetCode 每日一題 257.二叉樹的所有路徑
阿新 • • 發佈:2020-09-04
257.二叉樹的所有路徑
題目連結:257.二叉樹的所有路徑
給定一個二叉樹,返回所有從根節點到葉子節點的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:
**輸入:**
1
/ \
2 3
\
5
**輸出:** ["1->2->5", "1->3"]
**解釋:** 所有根節點到葉子節點的路徑為: 1->2->5, 1->3
我的題解
#pragma G++ optimize(2) #pragma GCC optimize(2) /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<string> ans; int gao(TreeNode* u, vector<int>& vec) { vec.emplace_back(u->val); if (u->left == nullptr && u->right == nullptr) { string s; s += to_string(vec[0]); for (int i = 1; i < vec.size(); i++) { s += "->"; s += to_string(vec[i]); } ans.emplace_back(s); } else { if (u->left) gao(u->left, vec); if (u->right) gao(u->right, vec); } vec.pop_back(); return 0; } vector<string> binaryTreePaths(TreeNode* root) { ans.clear(); vector<int> st; if (root == nullptr) return ans; gao(root, st); return ans; } };