主題

LeetCode - 965. Univalued Binary Tree 解題心得

Not In My Back Yard | 2021-02-25 00:00:03 | 巴幣 0 | 人氣 12

題目連結:


題目意譯:
一個二元樹為單值的,如果其滿足樹上所有節點值都相同。

回傳真(True)若且唯若給定的樹為單值的。

注:
給定樹之節點數位於範圍 [1, 100] 中。
每個節點值位於範圍 [0, 99] 中。



範例測資:
範例 1:
輸入: [1,1,1,1,1,null,1]
輸出: true

範例 2:
輸入: [2,2,2,5,2]
輸出: false


解題思維:
可以寫成簡單的遞迴:
IsUni(TreeNode *root):
  如果 root 為空節點,則回傳真。
  如果左子樹或右子樹不是單值的,即
    !IsUni(root->left) || !IsUni(root->right),
    代表整個樹不是單值,因此回傳假(False)。
  如果左右子樹之根節點之一的值不等於 root->val,則回傳假。
  上述皆非,則回傳真。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作