LeetCode : Binary Tree Paths

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:
    void binaryTreePaths(vector<string>&dst,TreeNode* root,string s)
    {
        if(root->left==NULL&&root->right==NULL)
           {
               dst.push_back(s);
               return ;
           }
        if(root->left)
            binaryTreePaths(dst,root->left,s+"->"+to_string(root->left->val));
        if(root->right)
            binaryTreePaths(dst,root->right,s+"->"+to_string(root->right->val));
    }
    vector<string> binaryTreePaths(TreeNode* root) {
       vector<string>ret;
       if(root==NULL)
          return ret;
         binaryTreePaths(ret,root,to_string(root->val));
         return ret;
    }
};

posted on 2017-03-29 22:38  gechen  阅读(82)  评论(0编辑  收藏  举报

导航