LeetCode(101)Symmetric Tree
来源:互联网 发布:usda数据使用指南 编辑:程序博客网 时间:2024/06/05 21:08
题目
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
But the following is not:
Note:
Bonus points if you could solve it both recursively and iteratively.
confused what “{1,#,2,3}” means? > read more on how binary tree is serialized on OJ.
分析
判断一棵二叉树是否为对称树;
仍然采用递归的思想,判断该树的左右子树是否对称;
若二叉树p与二叉树q对称,也就是说其根节点相同,p左子树应与q右子树对称,同理,p右子树应与q左子树对称;
AC代码
/** * 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) { if (!root) return true; else //判断左右子树是否对称 return isSymmetricTree(root->left, root->right); } bool isSymmetricTree(TreeNode* p, TreeNode* q) { //如果两个二叉树均为空,则返回true if (!p && !q) { return true; } //如果两者其一为空树,则返回false else if (!p || !q) { return false; } else{ if (p->val != q->val) return false; else //p左子树应与q右子树对称,同理,p右子树应与q左子树对称 return isSymmetricTree(p->left, q->right) && isSymmetricTree(p->right, q->left); } }};
0 0
- LeetCode(101)Symmetric Tree
- LeetCode(101)Symmetric Tree
- LeetCode 101 Symmetric Tree
- LeetCode: Symmetric Tree [101]
- [leetcode 101] Symmetric Tree
- [LeetCode 101]Symmetric Tree
- leetcode-101 Symmetric Tree
- leetcode || 101、Symmetric Tree
- Leetcode[101]-Symmetric Tree
- leetcode[101]:Symmetric Tree
- LeetCode 101 Symmetric Tree
- leetcode 101 Symmetric Tree
- Leetcode# 101 Symmetric Tree
- leetcode 101: Symmetric Tree
- leetCode #101 Symmetric Tree
- leetcode-101-Symmetric Tree
- leetcode 101 Symmetric Tree
- LeetCode 101: Symmetric Tree
- 黑马程序员——java学习笔记--日期操作类
- LightOJ 1236 Pairs Forming LCM
- What's New in Swift 2 —— guard关键词
- android问题集锦之一
- 齐达迪的第一篇博客
- LeetCode(101)Symmetric Tree
- 黑马程序员——java学习笔记--泛型
- 取本地相册里面的照片并上传
- 《Mahout实战》
- JAVA基础--db10_java多态-内部类
- java学习笔记之反射
- 车载一体机凯立德导航升级
- MongoDB 数据模型设计
- 十一第五题 求数组最大和的子数组