problem
solution1:recursive递归方法。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/** * 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: void binaryTreePaths(vector<string>& result, TreeNode* root, string str)//取地址符的用法. { if(!(root->left) && !(root->right)) { result.push_back(str); return; } if(root->left) binaryTreePaths(result,root->left, str+"->"+to_string(root->left->val));// if(root->right) binaryTreePaths(result, root->right, str+"->"+to_string(root->right->val)); } vector<string> binaryTreePaths(TreeNode* root) { vector<string> result; if(!root) return result;// binaryTreePaths(result, root, to_string(root->val)); return result; } };
solution2:DFS
solution3:BFS
参考
1. Leetcode_257_Binary Tree Paths;
完