leetcode 101 Symmetric Tree C++
来源:互联网 发布:dnf远程控制软件 编辑:程序博客网 时间:2024/05/22 15:41
递归版
class Solution {private: bool symmetric(TreeNode* left,TreeNode* right){ if(!left&&!right) return true; else if(left&&!right || !left&&right) return false; else{ if(left->val == right->val) return symmetric(left->left,right->right)&&symmetric(left->right,right->left); else return false; } }public: bool isSymmetric(TreeNode* root) { if(!root) return true; else return symmetric(root->left,root->right); }};
非递归版
class Solution {public: bool isSymmetric(TreeNode* root) { queue<TreeNode *> que; vector<vector<int>> vec; if (!root) return true; que.push(root); while(que.size() != 0){ vector<int> tmpVec; queue<TreeNode*> tmpQue; while(que.size() != 0){ TreeNode * node = que.front(); que.pop(); if(node->left) tmpQue.push(node->left); else if(!node->left && node->val != -100) tmpQue.push(new TreeNode(-100)); if(node->right) tmpQue.push(node->right); else if(!node->right && node->val != -100) tmpQue.push(new TreeNode(-100)); tmpVec.push_back(node->val); } vec.push_back(tmpVec); que = tmpQue; } for (int i = 1;i<vec.size();i++){ vector<int> tmp = vec[i]; if(tmp.size()%2 != 0) return false; for(int j = 0;j<tmp.size();j++){ if(tmp[j] == tmp[tmp.size()-j-1]) continue; else return false; } } return true; }};
这个非递归版是可以骗过机器,但是可能会出问题,选择的值应该是不会出现的值才行。而且效率也不高。。。
0 0
- 【leetcode c++】101 Symmetric Tree
- 【LeetCode-101】 Symmetric Tree(C++)
- #LeetCode# #C++# Symmetric Tree
- [leetcode-101]Symmetric Tree(c++)
- 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
- PPT也能实现列表播放
- beego访问数据库
- 15 个 Android 通用流行框架大全
- 数据抓包(网络爬虫)-正方教务管理系统登录后获取自己的课程表
- 高级I/O----sockerpair
- leetcode 101 Symmetric Tree C++
- 时间管理,你知道多少?
- C语言《函数如何区分形参and实参》
- Linux crontab定时执行任务 命令格式与详细例子
- php中mysql问题
- Partition Array
- Ubuntu server 14.04下搭建NFS并挂载HDFS到本地+Samba服务器共享这个本地文件到Windows端
- Metal 着色语言编程指南 二三
- 中文字符串反转