二叉树的所有路径

来源:互联网 发布:js设置input失去焦点 编辑:程序博客网 时间:2024/06/05 15:55

给一棵二叉树,找出从根节点到叶子节点的所有路径。

样例

给出下面这棵二叉树:

   1 /   \2     3 \  5

所有根到叶子的路径为:

[  "1->2->5",  "1->3"]
/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val = val; *         this->left = this->right = NULL; *     } * } */vector<TreeNode*> node;class Solution {public:    /*     * @param root: the root of the binary tree     * @return: all root-to-leaf paths     */    public:    vector<string> binaryTreePaths(TreeNode *root)    {        vector<string> temp;        if(root == NULL)            return temp;        binaryTreePathsCore(root,temp);        return temp;    }    void binaryTreePathsCore(TreeNode *root,vector<string> &path)    {       if(root != NULL)       {           node.push_back(root);           if(root->left == NULL && root->right == NULL)           {               string s;               for(int i=0;i<node.size();i++)               {                   s.append(to_string(node[i]->val));                   s.append("->");               }               s =  s.substr(0,s.length() - 2);               path.push_back(s);               node.pop_back();               return ;                          }           binaryTreePathsCore(root->left,path);           binaryTreePathsCore(root->right,path);           node.pop_back();       }    }};
原创粉丝点击