二叉树的所有路径

来源:互联网 发布:mac大型网游 编辑:程序博客网 时间:2024/05/21 14:41

题目描述:

二叉树的所有路径 

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

样例

给出下面这棵二叉树:

   1 /   \2     3 \  5

所有根到叶子的路径为:

[  "1->2->5",  "1->3"]
解题思路:

首先遍历二叉树,递归找到根节点到叶子结点的所有路径,放到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> vec;
        if(root==NULL) return vec;
        all(root,vec,to_string(root->val));
        return vec;
    }
    void all(TreeNode*root,vector<string>&v,string str )
    {
        if(root->left==NULL&&root->right==NULL){
            v.push_back(str);
            return ;
        }
        if(root->left!=NULL)
          all(root->left,v,str+"->"+to_string(root->left->val));
        if(root->right!=NULL)
          all(root->right,v,str+"->"+to_string(root->right->val));
    }


};

感悟:一开始觉得这题很简单,但是做着发现节点的值int类型与题目给的string类型不一致,如何将int转化为string类型不会了,然后去网上找到了to_string 就能解决了


        

0 0
原创粉丝点击