2020年5月14日 星期四

[LeetCode] 101. Symmetric Tree* 解題思路 (Easy)



這題需要判斷二元樹是否是對稱的。




LeetCode 題目連結

 

https://leetcode.com/problems/symmetric-tree/

 

題目


Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
    1
   / \
  2   2
 / \ / \
3  4 4  3

But the following [1,2,2,null,3,null,3] is not:
    1
   / \
  2   2
   \   \
   3    3 
 
 

Accept 作法


這題時間複雜度為 O(n)。


Runtime: 0 ms
Memory: 37.7 MB

Java 程式碼

  1. class Solution {
  2. public boolean isSymmetric(TreeNode root) {
  3. return is_Symmetric(root,root);
  4. }
  5. public boolean is_Symmetric(TreeNode leftRoot,TreeNode rightRoot) {
  6. if(leftRoot == null && rightRoot!=null){
  7. return false;
  8. }
  9. if(leftRoot != null && rightRoot==null){
  10. return false;
  11. }
  12. if(leftRoot == null && rightRoot == null)
  13. return true;
  14. return (leftRoot.val == rightRoot.val) && is_Symmetric(leftRoot.left,rightRoot.right) && is_Symmetric(leftRoot.right,rightRoot.left);
  15. }
  16. }

 

更多 LeetCode 相關資源

 

複習程式面試書籍


除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備
需要的話可以看看,寫得很仔細。


書名:提升程式設計師的面試力:189道面試題目與解答



相關 LeetCode文章一律會放在 程式解題 標籤分類,歡迎持續追蹤。


沒有留言:

張貼留言