如何在 C# 中檢查二叉樹是否具有給定的路徑總和?
HasPathsum 接受兩個引數,一個為樹節點,另一個為總和值,最初我們檢查節點是否為 null,如果節點為 null,那麼我們返回 false。如果節點不為 null,那麼我們呼叫 HasPathSum 遞迴方法,在每一步遞迴中,我們繼續從節點值中減去總和值。如果總和的值達到 0,那麼我們得出結論,給定的樹具有等於總和的路徑,並返回 true。
示例
public class TreesPgm{
public class Node{
public int Value;
public Node LeftChild;
public Node RightChild;
public Node(int value){
this.Value = value;
}
public override String ToString(){
return "Node=" + Value;
}
}
public bool HasPathSum(Node node, int sum){
if (root == null){
return false;
}
return helperHasPathSum(node, sum);
}
private bool helperHasPathSum(Node root, int sum){
if (root == null){
return false;
}
sum -= root.Value;
if (root.LeftChild == null && root.RightChild == null && sum == 0){
return true;
}
return helperHasPathSum(root.LeftChild, sum) || helperHasPathSum(root.RightChild, sum);
}
}輸入
5 2 6 1 3 7
輸出
True
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP