二叉树的所有路径

来源:互联网 发布:mac ftp 看不到文件夹 编辑:程序博客网 时间:2024/06/05 08:55

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

样例

给出下面这棵二叉树:

   1 /   \2     3 \  5

所有根到叶子的路径为:

[  "1->2->5",  "1->3"]
解题思路:同样使用递归的方式将路径保存都建立的string类型的vector中,让每一条路径都是vector中的一个元素。

实验代码:

class Solution {
public:
    /**
     * @param root the root of the binary tree
     * @return all root-to-leaf paths
     */
    vector<string> binaryTreePaths(TreeNode* root){
        // Write your code here
        vector<string> rujing;
        if(root==NULL) return rujing;
        hebing(root,rujing,to_string(root->val));
        return rujing;
    }
    void hebing(TreeNode *r,vector<string>&v,string str )
    {
        if(r->left==NULL&&r->right==NULL)
        {
            v.push_back(str);
        }
        if(r->left!=NULL)
          hebing(r->left,v,str+"->"+to_string(r->left->val));
        if(r->right!=NULL)
          hebing(r->right,v,str+"->"+to_string(r->right->val));
    }
};

个人感想:to_string可以直接让字符和数字相加。

0 0
原创粉丝点击