Leetcode: Symmetric Tree
来源:互联网 发布:嗅探 软件 编辑:程序博客网 时间:2024/06/05 15:01
给定一个树,判断是否为镜像对称。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ import java.util.*;public class Solution { public boolean isSymmetric(TreeNode root) { if(root == null){ return true; } List<TreeNode> leftlist = new ArrayList<TreeNode>(); //左List记录root左边的广度遍历 List<TreeNode> rightlist = new ArrayList<TreeNode>(); //右list记录root右边的广度遍历 leftlist.add(root.left); rightlist.add(root.right); while(leftlist.size() != 0 ){ if((leftlist.get(0) == null) ^ (rightlist.get(0) == null) ){ //是否一个为空一个不为空 return false; } if(leftlist.get(0) != rightlist.get(0) ){ //左右都不为null if(leftlist.get(0).val != rightlist.get(0).val ){ return false; } leftlist.add(leftlist.get(0).right ); leftlist.add(leftlist.get(0).left ); rightlist.add(rightlist.get(0).left ); rightlist.add(rightlist.get(0).right ); } leftlist.remove(0); rightlist.remove(0); } return true; }}
类似于广度遍历,左边的子树从右向左遍历,右边的子树从左向右遍历,用两个队列来维护判断它们是否相等对称。
0 0
- 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
- 微机原理==作业1(3)
- ubuntu16.4+win7 ultimate
- 【杭电oj2586】How far away ?
- hdu3333 Turing Tree
- HTTPS与HTTP的区别
- Leetcode: Symmetric Tree
- 二叉查找树的操作
- 更改表的character set
- Spring实现AOP的4种方式
- OkHttp使用详情
- 用户 'IIS APPPOOL\DefaultAppPool' 登录失败。
- AVL树的插入与删除(均为递归实现)
- java入门1
- 单片机AD-DA转换