Python程式檢查樹中所有值是否相同


假設我們有一個二叉樹,我們需要檢查樹中的所有節點是否都具有相同的值。

因此,如果輸入類似於

則輸出將為True

為了解決這個問題,我們將遵循以下步驟:

  • 定義一個函式solve()。它將接收根節點和值val作為引數。

  • 如果根節點為空,則

    • 返回True

  • 如果val未定義,則

    • val := 根節點的值

  • 當根節點的值與val相同,並且solve(根節點的左子節點, val)和solve(根節點的右子節點, val)也為真時,返回true

讓我們看一下以下實現以更好地理解:

示例

 線上演示

class TreeNode:
   def __init__(self, val, left=None, right=None):
      self.val = val
      self.left = left
      self.right = right
class Solution:
   def solve(self, root, val=None):
      if not root:
         return True
      if val is None:
         val = root.val
      return root.val == val and self.solve(root.left, val) and
self.solve(root.right, val)
ob = Solution()
root = TreeNode(5)
root.left = TreeNode(5)
root.right = TreeNode(5)
root.left.left = TreeNode(5)
root.left.right = TreeNode(5)
print(ob.solve(root))

輸入

root = TreeNode(5)
root.left = TreeNode(5)
root.right = TreeNode(5)
root.left.left = TreeNode(5)
root.left.right = TreeNode(5)

輸出

True

更新於: 2020年10月21日

269 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告