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