剑指offer:对称二叉树
来源:互联网 发布:数据恢复高级技术 编辑:程序博客网 时间:2024/05/22 15:31
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
C++实现:
/*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) { if(pRoot==NULL) return true; return comRoot(pRoot->left,pRoot->right);//采用递归的方法,分别判断左右子树是否相同 } bool comRoot(TreeNode* left,TreeNode* right){ if(left==NULL) return right==NULL; if(right==NULL) return false; if(left->val!=right->val) return false; return comRoot(left->right,right->left)&& comRoot(left->left,right->right);//判断左右子树是否相同 }};
python实现:
# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def isSymmetrical(self,pRoot): # write code here return self.isSymBT(pRoot,pRoot) def isSymBT(self,tree1,tree2): if tree1 == None and tree2 == None: return True if tree1 == None or tree2 == None: return False if tree1.val != tree2.val: return False return self.isSymBT(tree1.left,tree2.right) and self.isSymBT(tree1.right,tree2.left)
阅读全文
0 0
- 剑指offer 对称二叉树
- 剑指offer:对称二叉树
- 剑指offer--对称的二叉树
- 剑指offer 59 - 对称的二叉树
- 《剑指offer》对称的二叉树
- 剑指offer-对称的二叉树
- 剑指offer—对称的二叉树
- 剑指offer:对称的二叉树
- 剑指offer:对称的二叉树
- [剑指offer]对称的二叉树
- 剑指Offer--059-对称的二叉树
- 《剑指offer》:[59]对称的二叉树
- 剑指offer-对称的二叉树
- 剑指offer---对称的二叉树
- 剑指offer 对称的二叉树
- 【剑指Offer】对称的二叉树
- 剑指offer 对称的二叉树
- 剑指offer-对称的二叉树
- storm框架跑wordcount
- 费用流[网络流24题] 餐巾
- html5小栗子---canvas时钟
- QT-程序生成详细信息
- HDU6053 TrickGCD
- 剑指offer:对称二叉树
- Pandas读取csv文件Error总结
- 解题报告:HDU_5663 Hillan and the girl 莫比乌斯反演
- brew使用
- 【JavaScript】闭包
- jquery 学习笔记
- 微信小程序项目实践 项目范围及开发计划
- Eclipse的一些常用的快捷键
- 【POJ2828】Buy Tickets