LeetCode——Symmetric Tree
来源:互联网 发布:进入编程模式失败 编辑:程序博客网 时间:2024/05/29 19:52
题目:
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 3But the following is not: 1 / \ 2 2 \ \ 3 3
解答:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class NodePair {public: NodePair(TreeNode* a, TreeNode* b) : pa(a), pb(b) {} bool isMirror() { bool a = (pa->left && pb->right && pa->left->val == pb->right->val) || (!pa->left && !pb->right); bool b = (pb->left && pa->right && pb->left->val == pa->right->val) || (!pb->left && !pa->right); return a && b; } TreeNode* pa; TreeNode* pb;};class Solution {public: bool isSymmetric(TreeNode* root) { if (!root) { return true; } NodePair rootPair(root, root); if (!rootPair.isMirror()) { return false; } if (!root->left) { return true; } list<NodePair> myList; NodePair pair(root->left, root->right); myList.push_back(pair); for (list<NodePair>::iterator it = myList.begin(); it != myList.end(); ++it) { if(!it->isMirror()) { return false; } if(it->pa->left) { NodePair pair(it->pa->left, it->pb->right); myList.push_back(pair); } if(it->pa->right) { NodePair pair(it->pa->right, it->pb->left); myList.push_back(pair); } } return true; }};
0 0
- LeetCode——Symmetric Tree
- leetcode——Symmetric Tree
- Symmetric Tree —— Leetcode
- LeetCode——Symmetric Tree
- LeetCode——Symmetric Tree
- leetcode 101 —— Symmetric Tree
- LeetCode题解——Symmetric Tree
- 【leetcode】Tree——Symmetric Tree(101)
- Leetcode - Tree - Symmetric Tree
- Leetcode - Tree - Symmetric Tree
- LeetCode[Tree]: Symmetric Tree
- [leetcode][tree] Symmetric Tree
- LeetCode101—Symmetric Tree
- leetcode——101——Symmetric Tree
- Leetcode-Symmetric Tree——判断二叉树是否对称
- leetcode刷题日记——Symmetric Tree
- LeetCode——101. Symmetric Tree (bfs)
- LeetCode刷题(C++)——Symmetric Tree(Easy)
- 学习笔记-基础知识7-多线程
- IKEV2 VPN
- Dictionary<T,T>的基本用法
- fseek获取大于4G的文件大小的问题
- Zend Studio 默认模板和输入代码提示时间的修改方式
- LeetCode——Symmetric Tree
- Linux socket编程(三) 简单的多线程聊天室
- 对象存储系统Swift技术详解:综述与概念
- Linux socket编程(二) 服务器与客户端的通信
- 字符串匹配之kmp算法
- Linux socket编程(一) 对套接字操作的封装
- 4个字节的16进制数转浮点型数据
- 用 ffmpeg + m3u8-segment 将h264的ES流转换成m3u8的过程记录
- 共享思源黑体ttf版,还有Mac下7z压缩