LeetCode
来源:互联网 发布:淘宝卖家后台官网 编辑:程序博客网 时间:2024/06/01 13:36
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
Note:
Bonus points if you could solve it both recursively and iteratively.
判断一个二叉树是否是对称的。
不想写递归,于是依旧写循环。用两个队列来模拟,将左子树(相对于root)push进第一个队列,右子树push进第二个队列。然后每次判断两个队列弹出的值是否相等。时间复杂度O(节点数),空间复杂度O(节点数)
/** * 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; queue<TreeNode*> q1; queue<TreeNode*> q2; q1.push(root); q2.push(root); while (!q1.empty() && !q2.empty()) { TreeNode* cur1 = q1.front(); TreeNode* cur2 = q2.front(); q1.pop(); q2.pop(); if (!cur1 && !cur2) continue; else if (!cur1 || !cur2) return false; if (cur1->val != cur2->val) return false; q1.push(cur1->left); q1.push(cur1->right); q2.push(cur2->right); q2.push(cur2->left); } return true; }};
阅读全文
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- Cannot read property 'length' of undefined
- 移动开发UI工具包Xamarin.Forms v2.3.5-pre6发布
- 英伟达CUVID硬解,并通过FFmpeg读取文件
- NOIP2015 Day 1 T3 斗地主
- Activity以singleTask模式启动,intent传值的解决办法
- LeetCode
- OpenCV之VideoCapture的使用——打开网络摄像头/图像序列
- FAQ页面设计
- okHttp的使用
- 百度2017春招笔试真题编程题集合
- L
- 本地项目提交到SVN
- Mysql Int、Datetime 和 Timestamp 时区相关性分析
- Lucene的配置与使用