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

更新於:2021 年 8 月 17 日

274 次瀏覽

開始你的職業

完成課程並獲得認證

開始
廣告