赞
踩
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
思路:把左右子树看成单独的两个树,两棵树进行比较(参考leetcode 100,链接)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ //比较两颗树是否相等 bool _isSymmetricTree(struct TreeNode* root1, struct TreeNode* root2){ if(root1 == NULL &&root2 == NULL) { return true; } if(root1 == NULL || root2 == NULL) { return false; } if(root1->val != root2->val) { return false; } return _isSymmetricTree(root1->left, root2->right) && _isSymmetricTree(root1->right, root2->left); } bool isSymmetric(struct TreeNode* root) { if(root == NULL) { return true; } return _isSymmetricTree(root->left,root->right); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。