题目
https://leetcode-cn.com/problems/symmetric-tree/submissions/
代码
class Solution {
public:
bool isSymmetric(TreeNode* root) {
return search(root,root);
}
bool search(TreeNode* left,TreeNode* right){
if(left==NULL&&right==NULL) return true;
if(left==NULL||right==NULL) return false;
if(left->val==right->val)
return search(left->left,right->right)&&search(left->right,right->left);
return false;
}
};
简析
二叉树简单递归问题,考虑结束条件和递归方法。
- 分别判断左树和右树
- 如果左树和右树的根节点值相等,递归返回 search(左树根节点的左子树,右树根节点的右子树)&&search(左树根节点的右子树,右树根节点的左子树)
- 如果都为空了,判断到叶子节点了,返回true。
- 如果一个为空,说明已经不对称了,返回false。
- 最后返回一个false,即是值不相等了,直接返回false。
网友评论