題目連結:
題目意譯:
一個二元樹為單值的,如果其滿足樹上所有節點值都相同。
回傳真(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,則回傳假。
上述皆非,則回傳真。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。