剑指offer | 训练题57:对称的二叉树

来源:互联网 发布:python expect 编辑:程序博客网 时间:2024/06/04 19:26

题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

思路

/** * 思路:首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同 * 左子树的右子树和右子树的左子树相同即可,采用递归 * 非递归也可,采用栈或队列存取各级子树根节点 *//*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:    bool isSymmetrical(TreeNode* pRoot){        return isduichen(pRoot, pRoot);    }    bool isduichen(TreeNode* pRoot1, TreeNode* pRoot2){        if(pRoot1 == NULL && pRoot2 == NULL) return true;        if(pRoot1 == NULL || pRoot2 == NULL) return false;        if(pRoot1->val != pRoot2->val) return false;        return isduichen(pRoot1->left, pRoot2->right) && isduichen(pRoot1->right, pRoot2->left);    }};
原创粉丝点击