LeetCode 101. Symmetric Tree
来源:互联网 发布:mac怎么给文件夹重命名 编辑:程序博客网 时间:2024/06/03 15:41
描述
判断一棵树是否对称
解决
利用递归遍历该树,因为需要判断对称性,所以需要传入两个节点参数。
/** * 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; } else { return judge(root -> left, root -> right); } } bool judge(TreeNode* n1, TreeNode* n2) { if (!n1 && !n2) { return true; } else if ((!n1 && n2) || (n1 && !n2)) { return false; } else { return n1 -> val == n2 -> val && judge(n1 -> left, n2 -> right) && judge(n1 -> right, n2 -> left); } }};
看到一个队列实现的方法
/** * 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) { queue<TreeNode*> que; if (!root) return true; que.push(root); que.push(root); TreeNode* l = NULL, *r = NULL; while (!que.empty()) { l = que.front(); que.pop(); r = que.front(); que.pop(); if (!l && !r) continue; else if ((!l && r) || (!r && l)) return false; else if (l -> val != r -> val) return false; que.push(l -> left); que.push(r -> right); que.push(l -> right); que.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
- List,Set,Map用法以及区别
- PHP缓存机制
- FZU 2020 组合数取模(Lucas定理模版)
- gradle checkstyle配置
- Android中如何实现播放音频设置不同的播放速率(MediaPlayer SoundPool AudioTrack OpenSL ES)
- LeetCode 101. Symmetric Tree
- 怎样用通俗的语言解释什么叫 REST,以及什么是 RESTful?
- 前端面试准备(一)
- 再谈pmt中的streamtype
- JavaScript面向对象-基于函数伪造的方式实现继承
- Java集合题
- Git 撤销 merge
- 经典书单 —— 语言/算法/机器学习/深度学习/AI/CV/PGM
- android 实现FlowLayout 流线布局(自定义ViewGroup)