本题要求将二叉树所有的路径输出,是一道简单题,深度优先遍历即可。
二叉树节点存储的是Int值,需要将其转化为字符串。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
class Solution { private: std::vector<string> v; public: void (int val , std::string &tmp) { string pp; if(val < 0) { tmp += "-"; val = -val; } while(val) { pp.insert(pp.begin(), '0'+val % 10); val = val / 10; } tmp += pp + "->"; }
void Traver(TreeNode* root, std::string tmp) { if(root) {
i2s(root->val,tmp); if(root->left) Traver(root->left,tmp); if(root->right) Traver(root->right,tmp); if(!root->left && !root->right) { tmp.erase(tmp.begin()+tmp.size()-2,tmp.end()); v.push_back(tmp); } } }
vector<string> binaryTreePaths(TreeNode* root) { std::string tmp; Traver(root,tmp); return v; } };
|
近期评论