【数据结构】二叉树-二叉树类别
满二叉树
如果二叉树中除了叶子结点,每个结点的度都为 2,则此二叉树称为满二叉树。
完全二叉树
1.如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。
2.相同深度的满二叉树的所有结点(不包含叶子)在该树上都有相应的节点(包含叶子)与之对应且所有左子树先存在,才会存在右子树,然后才会存在下层子树的情况,这样的树为完全二叉树 。
判断一个树是否是完全二叉树
作者:是小王吖🐅 链接:https://www.nowcoder.com/discuss/394880861177475072 来源:牛客网 import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return bool布尔型 */ public static boolean isCompleted=true; public boolean isCompleteTree (TreeNode root) { // write code here if(root==null) return true; Deque<TreeNode> deque=new LinkedList<>(); deque.offer(root); boolean flag=false; while(!deque.isEmpty()){ TreeNode temp=deque.poll(); if(temp==null){ flag=true; continue;//调到下一个循环,查看后面是否还有元素 } if(flag)return false; deque.offer(temp.left); deque.offer(temp.right); } return true; } }
二叉搜索树
又称为二叉排序树,具有以下的性质:
- 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值
- 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值
- 它的左右子树也分别为二叉搜索树
二叉树的中序遍历的结果是有序的
判断一个树是不是二叉排序树
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return bool布尔型 */ public boolean isValidBST(TreeNode root){ //利用二叉搜索树的中序遍历是非递减数列的特性解题 ArrayList<Integer> list=new ArrayList<>(); inorderfun(root,list); if(root==null||(root.left==null&&root.right==null))return true; for(int i=1;i<list.size();i++){ if(list.get(i)<list.get(i-1)) return false; } return true; } public void inorderfun(TreeNode node,ArrayList<Integer> list){ if(node==null)return; inorderfun(node.left,list); list.add(node.val); inorderfun(node.right,list); } }

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~