101. 對稱二叉樹
給你一個二叉樹的根節點?root
?, 檢查它是否軸對稱。
示例 1:
輸入:root = [1,2,2,3,4,4,3] 輸出:true
示例 2:
輸入:root = [1,2,2,null,3,null,3] 輸出:false 提示:
- 樹中節點數目在范圍?
[1, 1000]
?內 -100 <= Node.val <= 100
算法思路:利用遞歸遍歷分別判斷左右子樹對稱節點利用判斷兩樹相同的思想。
判斷兩樹對稱:這里我們輸入的分別是左右子樹的根節點,然后一個從左節點開始遍歷,另外一個從右節點開始遍歷即可
代碼實現:
bool ismirrortree(struct TreeNode* p,struct TreeNode* q){if(p == NULL && q == NULL){return true;}if(!p || !q || p->val != q->val){return false;}return ismirrortree(p->left,q->right) && ismirrortree(p->right,q->left); }bool isSymmetric(struct TreeNode* root) {if(!root){return true;}return ismirrortree(root->left,root->right); }
這道題利用前面我們做過的題目的思想,有時候它只給了一個接口,但并不意味著你不可以在該接口中調用其他接口。
好了,本期的內容就分享到這里了,謝謝大家的點贊和收藏!