LeetCode Symmetric Tree
2015-07-04 10:53
441 查看
Description:
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
But the following is not:
Solution:
两种遍历树节点的方法,第一种是每次都先左后右,另外一种是先右后左。如果每次对应的节点都一样,则表示相同。
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
Solution:
两种遍历树节点的方法,第一种是每次都先左后右,另外一种是先右后左。如果每次对应的节点都一样,则表示相同。
import java.util.*; public class Solution { LinkedList<TreeNode> forward = new LinkedList<TreeNode>(); LinkedList<TreeNode> backward = new LinkedList<TreeNode>(); TreeNode node1, node2; boolean flag1, flag2; public boolean isSymmetric(TreeNode root) { forward.add(root); backward.add(root); while (!forward.isEmpty() && !backward.isEmpty()) { node1 = forward.pop(); node2 = backward.pop(); flag1 = node1 == null; flag2 = node2 == null; if (flag1 || flag2) { if (flag1 == flag2) continue; else return false; } if (node1.val != node2.val) return false; forward.add(node1.left); forward.add(node1.right); backward.add(node2.right); backward.add(node2.left); } return true; } }
相关文章推荐
- [LeetCode]Search for a Range
- Fragment的懒加载(解决ViewPager中Fragment生命周期错乱的问题)
- GCO3.0的图割分割算法应用(三)
- 网络图片加载
- 我的学习计划---第一部分数据结构与算法
- Android基于发展Service音乐播放器
- 访问控制
- 带你认识LabVIEW和MATLAB
- 把你的代码卸载到GPU(用GPU编程):如何开始
- error C2065: “list”: 未声明的标识符
- 文章标题
- C语言 常用函数
- 机器人视觉技术的关键所在
- Factory Pattern 工厂模式
- 查找同构数的数量
- java深入解析-第1章 基本概念2
- 音乐播放
- 【动态规划】HDU 1003 Max Sum
- iOS --- UITableView的优化技巧
- 备忘录