剑指Offer—58—对称的二叉树
来源:互联网 发布:python 爬虫 动态页面 编辑:程序博客网 时间:2024/06/05 09:55
对称的二叉树——请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
package A58对称的二叉树;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}public class Solution { boolean isSymmetrical(TreeNode pRoot) { if (pRoot == null){ return true; } return isTrue(pRoot.left,pRoot.right); } boolean isTrue(TreeNode t1,TreeNode t2){ if (t1 == null && t2 == null){ return true; } if (t1 != null && t2 != null){ return t1.val == t2.val && isTrue(t1.left,t2.right) && isTrue(t1.right,t2.left); } return false; }}
package A58对称的二叉树;import java.util.LinkedList;import java.util.Queue;public class Solution1 { boolean isSymmetrical(TreeNode pRoot) { if (pRoot == null){ return true; } Queue<TreeNode> q1 = new LinkedList<>(); Queue<TreeNode> q2 = new LinkedList<>(); q1.add(pRoot.left); q2.add(pRoot.right); TreeNode left; TreeNode right; while (!q1.isEmpty() && !q2.isEmpty()){ left = q1.poll(); right = q2.poll(); if (null == left && null == right){ continue; } if (null == left || null == right){ return false; } if (left.val != right.val){ return false; } q1.add(left.left); q1.add(left.right); q2.add(right.right); q2.add(right.left); } return true; }}
阅读全文
0 0
- 剑指offer—对称的二叉树
- 剑指Offer—58—对称的二叉树
- 《剑指offer》——对称的二叉树
- 剑指offer——对称的二叉树判断
- 剑指offer(C++)——对称的二叉树
- 剑指offer——对称的二叉树
- 剑指offer——对称的二叉树(好)
- 剑指offer——对称的二叉树
- 剑指offer--对称的二叉树
- 剑指offer 59 - 对称的二叉树
- 《剑指offer》对称的二叉树
- 剑指offer-对称的二叉树
- 剑指offer:对称的二叉树
- 剑指offer:对称的二叉树
- [剑指offer]对称的二叉树
- 剑指Offer--059-对称的二叉树
- 《剑指offer》:[59]对称的二叉树
- 剑指offer-对称的二叉树
- deeplin ( linux ) STS 中不能选择tomcat 的问题
- Tomcat Connector运行模式从bio方式改成nio方式
- oracle 备忘
- Prime Number(CodeForces
- js中的apply和call的用法
- 剑指Offer—58—对称的二叉树
- Python 单线程 多线程
- 系统级性能分析工具 — Perf
- C语言中,#include<>和#include" "的区别
- 使用数据库创建的Flash 游戏- Pronto Move Shard
- Chrome Extension manifest【谷歌浏览器扩展之配置】
- fork一个子进程会拷贝父进程的什么
- Dump文件
- SpringMVC返回值类型