搜索二叉树:二叉树的中序遍历,在遍历的过程中,节点值都是递增的

class Node(object):def __init__(self,value):self.value = valueself.right = Noneself.left = Nonedef isBst(head):if head == None:return Truestack = []pre = float("-Inf")while head!=None or len(stack)!=0:if head!=None:stack.append(head)head = head.leftelse:head = stack.pop()print(head.value)if head.value > pre:pre = head.valuehead = head.rightelse:return Falsereturn True

判断是否是完全二叉树

思想:

1、按层遍历二叉树,从每层的左边向右一次遍历所有节点

2、如果当前节点有右孩子节点,但是没有左孩子节点,直接返回False

3、如果当前节点并不是所有左右孩子都有,那么之后的所有节点必须都是叶子节点,否则返回False

4、遍历过程中如果不返回False,则遍历结束后返回True

def isCBT(node):if node == None:return Truequeue = []queue.append(head)isLeaf = Falsewhile queue:root = queue.pop(0)l = root.leftr = root.rightif (l==None and r!=None) or ((l!=None or r!=None) and isLeaf):return Falseif l!=None:queue.append(l)if r!=None:queue.append(r)else:isLeaf = Truereturn True

判断一颗二叉树是否为搜索二叉树和完全二叉树相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)

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

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

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

  8. C++实现二叉树相关问题(先序遍历,中序遍历,后序遍历,层序遍历,搜索二叉树、平衡二叉树、满二叉树、完全二叉树的判断,最低公共祖先,二叉树的序列化和反序列化)

    目录 题目一 二叉树递归和非递归遍历 题目二 如何完成二叉树的宽度(也叫层序)遍历(常见题目:求一棵二叉树的宽度) 题目四 如何判断一棵二叉树是搜索二叉树(BST)? 题目四 如何判断一棵二叉树是平衡 ...

  9. 寻找搜索二叉树中两个错误的节点

    题目:一颗二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这颗二叉树不再是搜索二叉树,请找到两个错误节点并返回.已知二叉树中所有节点的值都不一样,给定二叉树的头节点head,返回一个长度为2 ...

最新文章

  1. 比Tiny YOLOv3小8倍,性能提升11个点,4MB的网络也能做目标检测
  2. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(边框,阴影,浮动)
  3. carbon abatement
  4. 003---属性查找和绑定方法
  5. C#中的扩展方法,Linq,IO和多线程的定义和实例
  6. LeetCode 5357. 设计一个支持增量操作的栈
  7. 博文视点读书节第九日丨大咖书单加倍放送!
  8. 不做保姆式运维,从容接手新业务运维工作
  9. jquery html dom方式创建新html元素
  10. 趋势OFFICESCAN忘记卸载密码时如何卸载客户端
  11. android mp4视频下载测试地址亲测有效
  12. 图形学中画正方形的几种方式
  13. java中语言转换方法_语言切换的三种方法
  14. Latex 编译报错: Misplaced omit.
  15. Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp
  16. 小巧 linux 网页浏览器,冷门软件!几款干净极简浏览器,小巧强大、高效出众...
  17. php switch 汉字,php switch 语法
  18. fn+f12查看接口
  19. lcd驱动分析(读书笔记)
  20. 2022淘宝双11喵果总动员怎么玩?天猫双十一喵果组队玩法攻略

热门文章

  1. 设置 JAVA_HOME
  2. Hadoop源代码eclipse编译指南
  3. Hadoop何以快速成为最佳网络安全工具?
  4. 如何让一个类可以被foreach枚举?
  5. TCP-IP详解:重传机制
  6. k8s pod MySQL环境变量,配置 – 在Docker中相当于env-file的Kubernetes
  7. slim php dd model,PHP全局使用Laravel辅助函数dump和dd
  8. 树莓派4视频输出接口_树莓派第四代来啦!4G内存、支持双屏4K输出和H265硬解
  9. 手机如何升级为鸿蒙系统,华为手机如何升级鸿蒙系统
  10. mysql 子查询 主键外键_MySQL查询优化:用子查询代替非主键连接查询实例介绍