zoukankan      html  css  js  c++  java
  • [LintCode] Binary Tree Paths 二叉树路径

    Given a binary tree, return all root-to-leaf paths.
    Example

    Given the following binary tree:

       1
     /  
    2     3
     
      5

    All root-to-leaf paths are:

    [
      "1->2->5",
      "1->3"
    ]

    LeetCode上的原题,请参见我之前的博客Binary Tree Paths

    解法一:

    class Solution {
    public:
        /**
         * @param root the root of the binary tree
         * @return all root-to-leaf paths
         */
        vector<string> binaryTreePaths(TreeNode* root) {
            vector<string> res;
            if (root) helper(root, "", res);
            return res;
        }
        void helper(TreeNode *node, string out, vector<string> &res) {
            out += to_string(node->val);
            if (!node->left && !node->right) {
                res.push_back(out);
            } else {
                if (node->left) helper(node->left, out + "->", res);
                if (node->right) helper(node->right, out + "->", res);
            }
        }
    };

    解法二:

    class Solution {
    public:
        /**
         * @param root the root of the binary tree
         * @return all root-to-leaf paths
         */
        vector<string> binaryTreePaths(TreeNode* root) {
            if (!root) return {};
            if (!root->left && !root->right) return {to_string(root->val)};
            vector<string> left = binaryTreePaths(root->left);
            vector<string> right = binaryTreePaths(root->right);
            left.insert(left.end(), right.begin(), right.end());
            for (auto &a : left) {
                a = to_string(root->val) + "->" + a;
            }
            return left;
        }
    };
  • 相关阅读:
    灰度发布
    rabbitmq应用场景
    redis设置cpu核数与内存
    使用word2010发布博客到博客园
    讲师
    UML-6.3-用例-详述示例
    UML-6.2-用例-用例模型/用例/场景关系
    UML-6.1-用例-示例
    数据库增量同步开源软件
    UML-5-进化式需求
  • 原文地址:https://www.cnblogs.com/grandyang/p/5562581.html
Copyright © 2011-2022 走看看