LeetCode Symmetric Tree
来源:互联网 发布:御马脚垫 知乎 编辑:程序博客网 时间:2024/05/22 01:20
题目
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
1 / \ 2 2 / \ / \3 4 4 3
But the following is not:
1 / \ 2 2 \ \ 3 3
Note:
Bonus points if you could solve it both recursively and iteratively.
confused what "{1,#,2,3}"
means?
判断二叉树是否镜像相同。
做两个dfs,一个先左子树,后右子树;另一个先右子树,后左子树。
代码:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {vector<TreeNode*> st1,st2;//中右左dfs、中左右dfs栈public: bool isSymmetric(TreeNode *root) {TreeNode *tp1,*tp2; st1.clear();st2.clear();st1.push_back(root);st2.push_back(root);while(!st1.empty())//dfs{tp1=st1.back();st1.pop_back();tp2=st2.back();st2.pop_back();if(tp1==NULL&&tp2==NULL)//比较continue;if(tp1!=NULL&&tp2!=NULL&&tp1->val==tp2->val){st1.push_back(tp1->left);st1.push_back(tp1->right);st2.push_back(tp2->right);st2.push_back(tp2->left);}else//不同时返回return false;}return true;//通过探测 }};
0 0
- Leetcode - Tree - Symmetric Tree
- Leetcode - Tree - Symmetric Tree
- LeetCode[Tree]: Symmetric Tree
- [leetcode][tree] Symmetric Tree
- LeetCode: Symmetric Tree
- [Leetcode] Symmetric Tree
- LeetCode : Symmetric Tree
- leetcode 13:symmetric tree
- [LeetCode] Symmetric Tree - Recursively
- [LeetCode] Symmetric Tree - Iteratively
- [LeetCode] Symmetric Tree
- [LeetCode]Symmetric Tree
- Leetcode:Symmetric Tree
- [Leetcode]Symmetric Tree
- Leetcode: Symmetric Tree
- [leetcode]Symmetric Tree
- LeetCode-Symmetric Tree
- [leetcode] Symmetric Tree
- objc_msgSend arm64 崩溃问题
- unity3D之我用过的小玩意(一)
- android WebView 图片缩放功能小结
- 关于cpp文件中extern(.h)的使用
- SHELLEXECUTEINFO 和 ShellExecuteEx的使用
- LeetCode Symmetric Tree
- 如何实现科技论文里面的算法
- 黑马程序员-iOS基础-Objective-C基础(三)
- SQL Server2008无法连接到XX,在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
- iOS 之OC字符串
- 使用Drawable资源之使用LayerDrawable资源
- gdb调试stl
- Spring中数据源和数据库连接池配置的几种方法
- MP4V2 录制mp4(h264+aac) 接口介绍