Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1 / \ 2 3 \ 5
All root-to-leaf paths are:
["1->2->5", "1->3"]
二叉树的遍历,下面这个代码是我参考网上其他大神的代码写的。
这个代码真的写的很赞!短小,精练!比我自己纠结很久写的臭长的代码好很多!/** * 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> result; void getDfsPaths( TreeNode* node, string strpath) { if(!node->left && !node->right){ result.push_back(strpath); return ; } if(node->left) getDfsPaths(node->left, strpath+"->"+to_string(node->left->val)); if(node->right) getDfsPaths( node->right, strpath+"->"+to_string(node->right->val)); } vector<string> binaryTreePaths(TreeNode* root) { if(!root) return result; getDfsPaths( root, to_string(root->val)); return result; } };