Leetcode 101. Symmetric Tree

首先我覺得這題有點難,level order, DFS, BFS要複習清楚!

解題的思路:



  • 從題目不難看出,他的對稱定義,即左子 = 右子。
  • 遍歷到同一層level的時候開始比他的子節點
  • 如果只有一個node,即對稱。
  • 直覺得想,用BFS會比較好寫。因此我們要實作queue,用兩個queue, q1代表左子樹, q2代表右子樹。
  1. 初始化q1放入root->left,q2放入root->right。
  2. auto 個別拿完q1, q2裡面的值再pop
  3. 這邊要加上NULL判斷,一旦NULL有對稱到,還是對稱,因此用continue
  4. 那如果只有其中一個是NULL那就是不對稱了。
  5. 不是NULL,判斷value是不是一樣的
  6. 這邊有點酷,就是push進去的順序,q1要先push左邊,q2要先push右邊。
  7. 重複2~6直到兩個queue都空。




留言

這個網誌中的熱門文章

面試 (網路搜尋的資源)

bitwise operation 面試考題