程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode -- Path Sum

LeetCode -- Path Sum

編輯:C++入門知識

LeetCode -- Path Sum


題目描述:


Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.


For example:
Given the below binary tree and sum = 22,
5
/
4 8
/ /
11 13 4
/
7 2 1
return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.




就是從根到葉子,判斷是否存在和為sum的路徑。


思路:


一道典型的DFS題,遍歷時累加當前節點數即可。


實現代碼:


public bool HasPathSum(TreeNode root, int sum) {
        Find(root, 0, sum);
        return found;
    }
    
    private bool found = false;
    
    private void Find(TreeNode node, int sum, int target){
        if(found || node == null){
            return;
        }
        if(node.left == null && node.right == null){
		if(sum + node.val == target){
            		found = true;
        	}
	}
        
        
        Find(node.left, sum + node.val, target);
        Find(node.right, sum + node.val, target);
    }


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved