二叉树
二叉树相关的题目
花千树hss
这个作者很懒,什么都没留下…
展开
-
已知一棵完全二叉树,求其节点的个数
已知一棵完全二叉树,求其节点的个数要求:时间复杂度低于O(N),N为这棵树的节点个数思路满二叉树:层数为lll,节点个数为2l−12^l-12l−1个从根节点出发,一路遍历其左孩子可以得到该二叉树的高度h从该二叉树的右孩子节点开始遍历其左孩子可以得到该部分二叉树的高度,如果高度等于lll,那么左子树是满二叉树,可以得到节点数,右子树不是满二叉树,对其进行递归;如果右子树的高度是l−1l-1l−1,那么右子树是满二叉树,可以得到节点数,对左子树进行递归。代码package BinaryTre原创 2020-05-11 15:10:01 · 388 阅读 · 0 评论 -
判断一棵树是否是完全二叉树
思路二叉树按层遍历:若有任何一个节点有右孩子没有左孩子,肯定不是完成二叉树,直接返回false;若一个节点不是两个孩子都全,也不是只有右孩子没有左孩子,那它后面遍历的节点都必需是叶子节点。代码public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data;原创 2020-05-11 14:33:45 · 100 阅读 · 0 评论 -
判断一棵树是否是搜索二叉树
思路二叉树中序遍历的结果是依次升序的,则该二叉树是搜索二叉树,否则不是。可在非递归的二叉树中序遍历中稍加修改。代码public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data; }}public static boolean isBST(Node head原创 2020-05-11 14:11:35 · 249 阅读 · 0 评论 -
判断一棵二叉树是否是平衡二叉树
思路递归判断每个节点及其子节点组成的树是否是平衡树代码package BinaryTree;public class IsBalancedTree { public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data;原创 2020-05-11 13:51:21 · 116 阅读 · 0 评论 -
二叉树的序列化和反序列化
二叉数序列化二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过某种符号表示空节点(#),以 _ 表示一个结点值的结束(value_)。下图是先序序列化的示意图:二叉树的反序列化二叉树的反序列化是指:根据某种遍历顺序得...原创 2020-05-08 11:07:28 · 331 阅读 · 0 评论 -
在二叉树中找到一个节点的后继节点
题目描述现在有一种新的二叉树节点类型如下:public class Node { public int value; public Node left; public Node right; public Node parent; public Node(int data) { this.value = data; }} 该结构比普通二叉树节点结构多了一个指向父节点的pa...原创 2020-05-06 17:09:50 · 202 阅读 · 0 评论 -
实现二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式
实现二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式package BinaryTree;import java.util.Stack;public class PreInPosTraverasl { public static class Node{ public int value; public Node left; ...原创 2020-05-06 16:34:14 · 538 阅读 · 0 评论