problem
solution1:recursive递归方法。
/** * 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& 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 binaryTreePaths(TreeNode* root) { vector result; if(!root) return result;// binaryTreePaths(result, root, to_string(root->val)); return result; }};
solution2:DFS
solution3:BFS
参考
1. ;
2. ;
完