[leetcode]: 101. Symmetric Tree
来源:互联网 发布:云科数据云一体机 编辑:程序博客网 时间:2024/06/01 08:44
1.题目
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
1 / \ 2 2 / \ / \3 4 4 3
But the following [1,2,2,null,3,null,3] is not:
1/ \2 2 \ \ 3 3
给一棵二叉树,判断这棵树是否镜像对称。
2.分析
广度优先遍历。
左子树和右子树遍历的方向相反即可。
递归or迭代
3.代码
递归
class Solution {public: bool judgeSysmetric(TreeNode* left, TreeNode*right) { if (left == NULL || right == NULL) return left == right; if (left->val!=right->val) return false; return judgeSysmetric(left->left, right->right) && judgeSysmetric(left->right, right->left); } bool isSymmetric(TreeNode* root) { if (root == NULL) return true; return judgeSysmetric(root->left, root->right); }};
迭代
bool isSymmetric(TreeNode* root) { if (root == NULL) return true; //左右子树分别用queue存储 queue<TreeNode*> left; left.push(root->left); queue<TreeNode*> right; right.push(root->right); while (!left.empty() && !right.empty()) { TreeNode* l = left.front(); left.pop(); TreeNode* r = right.front(); right.pop(); if (l == NULL && r == NULL) continue; if (l == NULL || r == NULL) return false; if (l->val != r->val) return false; //左边与右边遍历的方向相反。左边从左到右。右边从右到左。 left.push(l->left); left.push(l->right); right.push(r->right); right.push(r->left); } return true;}
阅读全文
0 0
- 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
- 101. Symmetric Tree LeetCode
- [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
- 关于多个.c和.h文件时的相互调用
- Static静态变量,静态方法,静态代码块
- Java 八种基本数据类型总结
- iReport+jasperReport 之scriptlet
- unity打包ios过大,ios压缩技巧
- [leetcode]: 101. Symmetric Tree
- 手把手编写自己的PHP MVC框架实例教程
- volley的源码解析
- 函数异步执行,并传递传参
- 文章标题
- iOS 在控制器间跳转实现过渡动画
- 网络超时select和setsockopt的区别和问答
- ADF 新手教程一(Jdeveloper12c)
- 蓝桥杯--历届试题:小朋友排队(归并排序)