平衡二叉树的解法:主要是求出二叉树的高度,若根节点的左子树的高度与右子树的高度差小于等于1,则表示该二叉树为平衡二叉树

public static class Node{public int value;public Node left;public Node right;public Node(int data){this.value = data;}
}
public static boolean isBalance(Node head){return getHeight(head, 0) ! = -1;
}public static int getHeight(Node head, int level){if(head == null){return level;}int lh = getHeight(head.left, level + 1);int rh = getHeight(head.right, level + 1);if(lh == -1 || rh == -1 || Math.abs(lh - rh) > 1){return -1;}
}

完全二叉树的解法:若最左的一个节点只有一个左子节点,则其余的同高度的节点都应该是叶节点

public static boolean isComplete(Node head){if(head == null){return true;}Queue<Node> queue = new LinkedList<Node>();boolean leaf = false;Node cur = null;Node l = null;Node r = null;queue.offer(head);while(!queue.isEmpty){cur = queue.poll();l = cur.left;r = cur.right;if((leaf && (l != null || r != null)) || (l == null && r != null)){return false;}if(l != null){queue.offer(l);}if(r != null){queue.offer(r);}else{leaf = true;}}
}

搜索二叉树的解法:只需要中序遍历整棵二叉树,判断得到的节点序列是否为依次递增即可。

判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)相关推荐

  1. 数据结构与算法之判断一棵树是否为搜索二叉树、判断一棵树是否是完全二叉树

    数据结构与算法之判断一棵树是否为搜索二叉树.判断一棵树是否是完全二叉树 目录 判断一棵树是否为搜索二叉树 判断一棵树是否是完全二叉树 1. 判断一棵树是否为搜索二叉树 概念:搜索树就是中序遍历的结果是 ...

  2. 判断一棵树是否是搜索二叉树 判断一棵树是否是完全二叉树

    package class_04;import java.util.LinkedList; import java.util.Queue; /*** * 判断一棵树是否是搜索二叉树* 判断一棵树是否是 ...

  3. 牛客题霸 [ 判断一棵二叉树是否为搜索二叉树和完全二叉树] C++题解/答案

    牛客题霸 [ 判断一棵二叉树是否为搜索二叉树和完全二叉树] C++题解/答案 题解: 搜索二叉树满足以下性质: 1.非空左子树的所以键值小于其根节点的键值 2.非空右子树的所有键值大于其根节点的键值 ...

  4. 如何判断一棵树是否是满二叉树

    判断一棵树是否是满二叉树 1.满二叉树定义 2.如何判断一棵树是否是满二叉树 3.代码 1.满二叉树定义 除最后一层无子节点外,其他层的所有节点都有两个子节点的二叉树就是满二叉树.如下图所示: 2.如 ...

  5. 判断一棵树是否为排序二叉树(二叉搜索树)

    问题:判断一棵树是否为排序二叉树(二叉搜索树) 思路:二叉排序树的中序遍历为一递增的排序,若果不满足这一条件,则,不是二叉树 程序实现: #include <iostream> #incl ...

  6. 找到二叉树中符合搜索二叉树条件的最大拓扑结构

    找到二叉树中符合搜索二叉树条件的最大拓扑结构 给定一棵二叉树的头节点 head,已知所有节点的值都不一样,返回其中最大的.且符合搜索二叉树 条件的拓扑结构的节点数.这里的拓扑结构是指,你可以在二叉树中 ...

  7. 判断一颗二叉树是否为搜索二叉树和完全二叉树

    搜索二叉树:二叉树的中序遍历,在遍历的过程中,节点值都是递增的 class Node(object):def __init__(self,value):self.value = valueself.r ...

  8. 算法(63)-二叉树的递归-搜索二叉树-满二叉树-平衡二叉树-

    目录 1.二叉树 2.搜索二叉树: 3.满二叉树: 4.平衡二叉树 1.二叉树 先.中.后序遍历    先序(中.左.右):1,2,4,5,3,6,7    中序(左.中.右):4,2,5,1,6,3 ...

  9. 算法-判断一颗树是否是搜索二叉树

    定义:(二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它的右子树不空,则右子树上所有结点的值均大于它的根结点 ...

最新文章

  1. Asp.net 内置对象
  2. oracle导出对象和数据,浅析Oracle对象和数据的导入导出
  3. android 自定义模板下载,android studio 自定义模板
  4. ASP.NET MVC的生命周期与网址路由
  5. 【渝粤题库】陕西师范大学200311常微分方程作业(高起本)
  6. 【WPF】如何保存RichTextBox的文本到数据库?以及如何对RichTextBox的Document做绑定?...
  7. Mark Cuban投资组合中60%为BTC,30%为ETH
  8. 前端能读取压缩包内容吗?_移动硬盘出现无法读取数据还能恢复吗?
  9. PhpStorm中如何使用FTP功能
  10. 单片机交通灯c语言实验报告,模拟交通灯单片机实验报告.doc
  11. Matlab求整数规划
  12. 【07月04日】指数估值排名
  13. 【利用编程来解决问题】——解数学题
  14. 详解Java 12新特性:switch表达式
  15. gis统计百分比_详细讲解ArcGIS数据统计及字段计算
  16. windows7交互式服务检测如何禁用?
  17. 【5GNR物理层】-NR物理层概述
  18. 2021-12-06 迈向程序猿的第四十三步
  19. 图灵机是最早的计算机,图灵机是现代计算机诞生的源头
  20. 1064mysql分区_如何解决mysql错误代码1064

热门文章

  1. Windows Server 2008服务器管理新技巧6则第1/4页
  2. C/C++数组名与指针区别深入探索
  3. Golang 匿名结构体及测试代码编写技巧
  4. HTML5API(5)
  5. 01-1. 最大子列和问题
  6. 分享一个web页面背景全屏的jquery插件Fullscreen Background
  7. GridView的翻页
  8. Flex 中取得当前服务IP地址
  9. 创建、编辑、删除目录
  10. Android驱动开发之Hello实例(基于高通msm8909)