搜索与回溯系列十二 leetcode 101 二叉树 对称二叉树

题目

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。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容