257Binary Tree Paths二叉树的所有路径

给定一个二叉树,返回所有从根节点到叶子节点的路径。

说明: 叶子节点是指没有子节点的节点。

示例:

输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3

 

第一次错超出时间限制。

然后加了几句不必要的代码

然后就0ms过了

???

 

 struct TreeNode {
     int val;
     TreeNode *left;
     TreeNode *right;
     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 };

class Solution {
public:
    vector res;
    vector binaryTreePaths(TreeNode* root) {
        if(root == NULL)
            return res;
        GetRes(root, "");
        return res;
    }

    void GetRes(TreeNode *root, string str)
    {
        if(root == NULL)
            return;
        if(root ->left == NULL && root ->right == NULL)
        {
            if(str == "")
            {
                res.push_back(to_string(root ->val));
                return;
            }
            else
            {
                res.push_back(str + "->" + to_string(root ->val));
                return;
            }
        }
        if(root ->left != NULL)
        {
            if(str == "")
            {
                GetRes(root ->left, to_string(root ->val));
            }
            else
            {
                GetRes(root ->left, str + "->" + to_string(root ->val));
            }
        }
        if(root ->right != NULL)
        {
            if(str == "")
            {
                GetRes(root ->right, to_string(root ->val));
            }
            else
            {
                GetRes(root ->right, str + "->" + to_string(root ->val));
            }
        }
    }
};

你可能感兴趣的:(Leetcode)