Monday, August 22, 2016

Leetcode 112. Path Sum

 /**  
  * Definition for a binary tree node.  
  * public class TreeNode {  
  *   public int val;  
  *   public TreeNode left;  
  *   public TreeNode right;  
  *   public TreeNode(int x) { val = x; }  
  * }  
  */  
 public class Solution {  
   public bool HasPathSum(TreeNode root, int sum) {  
     if (root == null)  
     {  
       return false;  
     }  
     List<int> list = calculate(root, sum);  
     return list.Contains(sum);  
   }  
   List<int> calculate(TreeNode root, int sum)  
   {  
     List<int> list = new List<int>();  
     if (root.left == null && root.right == null)  
     {  
       list.Add(root.val);  
     }  
     if (root.left != null)  
     {  
       foreach (int num in calculate(root.left, sum))  
       {  
         list.Add(root.val + num);  
       }  
     }  
     if (root.right != null)  
     {  
       foreach (int num in calculate(root.right, sum))  
       {  
         list.Add(root.val + num);  
       }  
     }  
     return list;  
   }  
 }  

No comments:

Post a Comment