判断一个二叉树是否对称
2016-04-11 09:38
239 查看
面试题里不光要求结构上对称,而且要求对称结点中的内容一样
可以使用递归的方法,同时比较左子树的左结点和右子树的右结点,比较左子树的右结点和右子树的左结点。
代码如下:
public class Test {
public static void main(String [] args){
}
boolean Judge(Node LeftNode,Node RightNode){
if(LeftNode!=null&&RightNode!=null){
if(LeftNode.val==RightNode.val){
if(Judge(LeftNode.left,RightNode.right)&&Judge(LeftNode.right,RightNode.right)){
return true;
}
}
}
else if(LeftNode==null&&RightNode==null)return true;
return false;
}
boolean Judge(Node root){
if(root==null)return true;
else return Judge(root.left,root.right);
}
}
class Node{
Node left;
Node right;
int val;
Node(int v){
val=v;
}
}
可以使用递归的方法,同时比较左子树的左结点和右子树的右结点,比较左子树的右结点和右子树的左结点。
代码如下:
public class Test {
public static void main(String [] args){
}
boolean Judge(Node LeftNode,Node RightNode){
if(LeftNode!=null&&RightNode!=null){
if(LeftNode.val==RightNode.val){
if(Judge(LeftNode.left,RightNode.right)&&Judge(LeftNode.right,RightNode.right)){
return true;
}
}
}
else if(LeftNode==null&&RightNode==null)return true;
return false;
}
boolean Judge(Node root){
if(root==null)return true;
else return Judge(root.left,root.right);
}
}
class Node{
Node left;
Node right;
int val;
Node(int v){
val=v;
}
}
相关文章推荐
- java Struts+Hibernate企业人力资源管理系统源代码下载
- 学Java请不要做浮躁的人
- phpmyadmin没有接收到要导入的数据.可能是文件名没有提交,也可能是文件大小超出 PHP 限制.
- 正则判断大于0的实数,整数位和小数位有长度限制
- shell远程执行命令
- Ios插件开发
- 成为聪明程序员必备的5个技能
- Android开发之MediaRecorder类详解
- 【poj 3373】Changing Digits 题意&题解&代码(C++)
- 广播接收者常用的action
- java Semaphore
- java反射机制工厂模式的应用
- MediaRecorder类介绍
- Maven命令行打包工程
- 忽略IE浏览器弹出的“允许阻止的内容”
- .net学习路线
- C++进阶
- excel导出
- 怎样设置Windows 7远程桌面连接
- PHP学习路线