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.

    For 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]
    ]
    
    public IList<IList<int>> PathSum(TreeNode root, int sum) {
            IList<IList<int>> res = new List<IList<int>>();
            BackTracking(root,sum,new List<int>(),res);
            return res;
        }
        
        public void BackTracking(TreeNode root, int sum, IList<int> cur,IList<IList<int>> res )
        {
            if(root != null)
            {
                if(root.left == null && root.right == null)//leaf check
                {
                    if(sum == root.val)
                    {
                        cur.Add(root.val);
                        res.Add(new List<int>(cur));
                    }
                }
                else
                {
                    cur.Add(root.val);
                    BackTracking(root.left,sum - root.val,new List<int>(cur),res);
                    BackTracking(root.right,sum - root.val,new List<int>(cur),res);
                }
            }
        }
  • 相关阅读:
    3372 选学霸
    3556 科技庄园
    1025 选菜
    UVA 437 The Tower of Babylon巴比伦塔
    3641 上帝选人
    tyvj P1175 机器人
    1692 子集和的目标值
    1689 建造高塔
    NOI2002 贪吃的九头龙
    NYOJ110 剑客决斗
  • 原文地址:https://www.cnblogs.com/renyualbert/p/5863271.html
Copyright © 2011-2022 走看看