美文网首页
搜索与回溯系列十二 leetcode 101 二叉树 对称二叉树

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

作者: 徐慵仙 | 来源:发表于2020-02-15 22:55 被阅读0次

题目

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。

相关文章

网友评论

      本文标题:搜索与回溯系列十二 leetcode 101 二叉树 对称二叉树

      本文链接:https://www.haomeiwen.com/subject/bnjufhtx.html