zoukankan      html  css  js  c++  java
  • 113. Path Sum II

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

    Note: A leaf is a node with no children.

    Example:

    Given the below binary tree and sum = 22,

          5
         / 
        4   8
       /   / 
      11  13  4
     /      / 
    7    2  5   1

    Return:

    [
       [5,4,11,2],
       [5,8,4,5]
    ]

     -

     private List<IList<int>> list = new List<IList<int>>();
    
            public IList<IList<int>> PathSum(TreeNode root, int sum)
            {
                Chuck(root, sum, 0, string.Empty);
                return list;
            }
    
            private void Chuck(TreeNode node, int sum, int tempSum, string str)
            {
                if (node == null)
                {
                    return;
                }
    
                tempSum = tempSum + node.val;
                var left = node.left;
                var right = node.right;
                if (string.IsNullOrEmpty(str))
                {
                    str = $"{node.val}";
                }
                else
                {
                    str = $"{str},{node.val}";
                }
    
                if (left == null && right == null)
                {
                    if (tempSum == sum)
                    {
                        var tempList = str.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                        list.Add(tempList);
                    }
                }
                else
                {
                    Chuck(left, sum, tempSum, str);
                    Chuck(right, sum, tempSum, str);
                }
            }
    Runtime: 288 ms, faster than 21.95% of C# online submissions for Path Sum II.
    Memory Usage: 34.2 MB, less than 13.98% of C# online submissions forPath Sum II.
  • 相关阅读:
    有用的文件(配置文件)
    gulp webpack 区别
    vue ssr
    微信小程序自定义组件
    mpvue 搭建小程序
    【转】DotNet加密方式解析--非对称加密
    java RSA加密算法
    【转】C#中RSA加密解密和签名与验证的实现
    C# 字符串 分割 反转 Base64
    RSA加密算法
  • 原文地址:https://www.cnblogs.com/chucklu/p/10925533.html
Copyright © 2011-2022 走看看