LeetCode:Symmetric Tree
来源:互联网 发布:qq飞车ae86原装数据 编辑:程序博客网 时间:2024/06/02 20:57
对于depth=n的所有节点,可以将所有节点从左到右编号,0,1,....。
判断该层是否存在对称:编号为index的节点,找到其对称节点pow(2,n)-1-index,若不存在或val不相等则不是对称树。
使用数组保存节点在n较大的情况下很容易内存溢出,考虑使用Map,key是节点编号,value是TreeNode.
package leetcode;import java.util.HashMap;import java.util.Map;public class SymmetricTree {/** * @param args */public static void main(String[] args) {TreeNode node = new TreeNode(1);node.left = new TreeNode(2);//node.right = new TreeNode(2);SymmetricTree s = new SymmetricTree();System.out.println(s.isSymmetric(node));}public boolean isSymmetric(TreeNode root) {if (root == null) {return true;}Map<Integer, TreeNode> father = new HashMap<Integer, TreeNode>();Map<Integer, TreeNode> child = new HashMap<Integer, TreeNode>();father.put(0, root);int maxChildCount = 2;while (true) {child.clear();for (Integer key : father.keySet()) {TreeNode node = father.get(key);if (node.left != null) {child.put(key * 2 + 0, node.left);}if (node.right != null) {child.put(key * 2 + 1, node.right);}}if (child.isEmpty()) {//no childbreak;}for (Integer index : child.keySet()) {TreeNode node = child.get(index);int symmetricIndex = maxChildCount - 1 - index;TreeNode symmetricNode = child.get(symmetricIndex);if (symmetricNode == null || symmetricNode.val != node.val) {return false;}}father.clear();Map<Integer, TreeNode> temp = father;father = child;child = temp;maxChildCount *= 2;}return true;}}
- 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
- Java I/O
- eclipse中创建maven项目, maven无法加载org.springframework.web.context.ContextLoaderListener
- ThinkPHP学习笔记(八)条件查询
- 中国式价值投资 四大成长股票池
- SQL视频总结
- LeetCode:Symmetric Tree
- 价值投资的误区
- hdu1033(水题)
- Magento How To Display Product Custom Option On list.phtml
- visual studio 2012 创建向导时,处理模板文件时出错的解决方法
- 关于findViewById函数
- hdu1031
- Poj 2299 Ultra-QuickSort(归并排序求逆序数)
- 矩阵经典操作(4)