題目描述:
示例 1:
輸入:root = [6,7,7,8,9,9,8] 輸出:true 解釋:從圖中可看出樹是軸對稱的。示例 2:
輸入:root = [1,2,2,null,3,null,3] 輸出:false 解釋:從圖中可看出最后一層的節點不對稱。提示:
0 <= 節點個數 <= 1000
首先分析一下這道題:
對于對稱二叉樹,既要求結構相同,也要保證每一個對稱節點中的值相同,因此我們就可以將根節點的左子樹與右子樹比較,看看是否相等
?
?
?
代碼實現:?
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/bool traversal(struct TreeNode*left,struct TreeNode*right){if(right==NULL&&left==NULL){return true;}if((right==NULL&&left!=NULL)||(right!=NULL&&left==NULL)){return false;}if(right->val!=left->val){return false;}return traversal(left->left,right->right)&&traversal(left->right,right->left);}
bool checkSymmetricTree(struct TreeNode* root) {if(root==NULL){return true;}return traversal(root->left,root->right);
}
?如有錯誤歡迎批評指正,第一次寫題解,可能有很多不足之處。