LeetCode 257 二叉樹的所有路徑 (二叉數,遞迴)
阿新 • • 發佈:2018-12-17
1.二叉樹的所有路徑
給定一個二叉樹,返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 輸入:
1
/ \
2 3
\
5
輸出: [“1->2->5”, “1->3”] 解釋: 所有根節點到葉子節點的路徑為: 1->2->5, 1->3 思路:很常規的解法,其實一直在思考"->“怎麼來的,看了網上的答案,基本上是直接加一個”->"的字串。然後再利用遞迴直接遍歷就行了。
class Solution { public: vector<string> binaryTreePaths(TreeNode* root) { if(root == NULL) return {}; vector<string> treePaths; getTreePath(root,treePaths,""); return treePaths; } void getTreePath(TreeNode* root,vector<string> &treePaths,string str){ str+=to_string(root->val); if(root->left==NULL && root->right==NULL){ treePaths.push_back(str); } str+="->"; if(root->left!=NULL){ getTreePath(root->left,treePaths,str); } if(root->right!=NULL){ getTreePath(root->right,treePaths,str); } } };```