• 【LeetCode & 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)


    【LeetCode & 剑指offer 刷题笔记】目录(持续更新中...)

    101. Symmetric Tree

     
     
    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    //问题:判断某二叉树是否为对称二叉树,联系问题:变换二叉树为原来的镜像
    //方法一:递归法
    class Solution
    {
    public:
        bool isSymmetric(TreeNode* root)
        {
            return isMirror(root,root); //从根结点开始     
        }
       
        bool isMirror(TreeNode* t1,TreeNode* t2)//判断两个树是否为镜像关系
        {
           
            //三个递归出口
            if(t1==NULL && t2==NULL) return true;   //两结点同时为空时为true,只有一个为空时为false,均为非空时,比较当前结点值以及左右子树是否为对称的
            else if(t1==NULL || t2==NULL) return false;
            //当前结点值相等,且左结点的左子树和右结点的右子树对称,左结点的右子树和右结点的左子树对称
            return (t1->val == t2->val) && isMirror(t1->left,t2->right) && isMirror(t1->right,t2->left);
        }
    };
     
  • 相关阅读:
    SpringBoot2 application.properties方式加载配置文件
    php第三十节课
    php第二十九节课
    php第二十八节课
    php第二十七节课
    php第二十六节课
    php第二十五节课
    php第二十四节课
    DBDA
    php第二十三节课
  • 原文地址:https://www.cnblogs.com/wikiwen/p/10225817.html
Copyright © 2020-2023  润新知