二叉树
荒野求思
人生就像写代码,总有bug出现
展开
-
第十二题:使用递归完成二叉树的前序,中序,后续遍历(Java实现)
题目:使用递归完成二叉树的前序,中序遍历,后续遍历代码实现:package com.isea.brush.tree;public class BinaryTree { private Node head; private int size; private static class Node { private int data; ...原创 2019-01-11 16:47:23 · 260 阅读 · 0 评论 -
第二十七题:如何判断一颗树是否是二分搜索树?(Java)
题目要求:如标题:假设该树没有重复的节点分析: 所谓的二分搜索树,就是任意一个节点满足,大于左孩子,小于右孩子。所以二分搜索树满足这样的一个性质:中序遍历之后的二叉树是顺序的。所以我们这里实现的思路是,改写二叉树的非递归版本的,来校验当前值和前一个值的大小关系。代码实现:package com.isea.brush.tree;import java.util.Sta...原创 2019-01-17 10:02:12 · 838 阅读 · 0 评论 -
第二十八题:如何判断一棵树是一颗全完二叉树?(Java)
题目要求:如标题: 分析:对于二叉树中的任意一个节点,层序遍历二叉树①:如果只有右孩子,没有左孩子,那么该树一定不是完全二叉树;②:第一次发现一个节点有如果左没右,或者左右都没有,那么其后的每一个节点都必须是叶子节点,否则一定不是一颗完全二叉树;package com.isea.brush.tree;import java.util.LinkedList;impor...原创 2019-01-17 11:38:56 · 486 阅读 · 0 评论 -
第十三题:非递归方法实现二叉树的前序,中序,后序,层序遍历(Java)
题目:请使用非递归的方法,实现二叉树的前序,中序,后序,层序遍历代码实现:附带了递归的实现,即使用递归来测试非递归的实现是否正确。package com.isea.brush.tree;import java.util.LinkedList;import java.util.Stack;public class BinaryTree { private No...原创 2019-01-16 16:48:15 · 463 阅读 · 0 评论 -
第二十三题:如何较为直观的打印一个二叉树(Java)
题目要求如标题代码实现:^ 表示左上方距离最近的是父节点;v 表示距离左下方最近的值是跟节点package com.isea.brush.tree;public class PrintBinaryTree { public static class Node { public int value; public Node lef...原创 2019-01-16 17:05:16 · 482 阅读 · 0 评论 -
第二十四题:在二叉树中找到一个节点的后继节点和前驱节点(Java)
题目要求:如标题(Node除了left,right,还有一个指向父节点的指针)什么前驱和后继节点? 在二叉树的中序遍历中,一个节点的前一个节点,就是该节点的前驱,一个节点的下一个节点就是该节点的后继。如何寻找一个节点的前驱?如果该节点有左子树,那么该节点的前驱就是该节点左子树中最右边的节点;如果该节点没有左子树,从当前节点开始往上寻找,直到当前节点是其父节点的右孩子,那么这个父节...原创 2019-01-16 19:12:11 · 1304 阅读 · 2 评论 -
第二十五题:二叉树的序列化和反序列化(Java)
题目要求:二叉树的数的序列化和反序列话,二叉树实际是存储在内存中的,一旦断电或者是关机,二叉树的数据就会在内存中丢失。所以我们需要将二叉树的数据保存下来,这个过程叫做持久化或者序列化;将二叉树的数据保存到了磁盘之后,还需要将磁盘中的二叉树的数据加载到内存中去,这过程叫做反序列化。反序列的标准是:如何序列化的,就怎么反序列话。代码实现: package com.isea.bru...原创 2019-01-16 20:17:56 · 1530 阅读 · 1 评论 -
第二十六题:判断一颗二叉树是不是平衡二叉树(Java)
题目要求:如标题:什么是平衡二叉树?任意节点的左子树和右子树的高度差不超过1,空数也是一颗平衡二叉树。要求:二叉树的节点的个数是N,时间复杂度是O(N)代码实现与分析:一个树是平衡二叉树的条件是,每一个子树都是平衡二叉树。对于node这颗子树,在何时是一颗平衡二叉树?①:左子树不平衡,false②:右子树不平衡,false③:左子树平衡,拿到左子树的高度h1...原创 2019-01-16 21:25:59 · 831 阅读 · 0 评论