如何在 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
廣告