51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#二叉
非递归遍历二叉树
2018-10-0320:16:53非递归遍历二叉树是使用堆栈来进行保存,个人推荐使用双while结构,完全按照遍历顺序来进行堆栈的操作,当然在前序和后序的遍历过程中还有其他的压栈流程。一、BinaryTreePreorderTraversal问题描述:问题求解:先序遍历就是在第一次访问到节点的时候将其值进行打印,然后...
代码星球
·
2020-06-13
递归
遍历
二叉
完全二叉树的节点个数 Count Complete Tree Nodes
2018-09-2516:36:25问题描述:问题求解:单纯遍历了一遍,emmm,果然TLE。解题思路就是比较左边树高度和右边树高度,如果相等,那么就是一个满二叉树,返回1<<h-1即可,如果不是,则递归的计算左右子树的个数。时间复杂度:O(logn*logn)publicintcountNodes(Tre...
代码星球
·
2020-06-13
完全
二叉
节点
个数
Count
使用排序数组/链表/preorder构建二叉搜索树
2018-08-1311:29:05一、ConvertSortedArraytoBinarySearchTree问题描述:问题求解:publicTreeNodesortedArrayToBST2(int[]nums){if(nums==null||nums.length==0){returnnull;}returnhe...
代码星球
·
2020-06-13
使用
排序
数组
链表
preorder
检验二叉树序列化的合理性 Verify Preorder Serialization of a Binary Tree
2018-07-3117:47:13问题描述:问题求解:本题要求在不构建二叉树的情况下对先序遍历生成的序列化字符串进行合法性验证,这里有个技巧性较强的验证方法,就是采用当前可用的指针数目进行验证,最初的时候只有一个指针,每当遇到一个节点,那么需要消耗一个指针,同时,如果是非空节点需要额外增加两个指针。在遍历过程中一旦出...
代码星球
·
2020-06-13
检验
二叉
序列化
合理性
Verify
二叉搜索树的操作
2018-07-3115:46:34一、插入InsertintoaBinarySearchTree问题描述:问题求解:publicTreeNodeinsertIntoBST(TreeNoderoot,intval){if(root==null){TreeNodenode=newTreeNode(val);returnn...
代码星球
·
2020-06-13
二叉
搜索
操作
二叉树最大宽度 Maximum Width of Binary Tree
2018-07-2715:55:13问题描述:问题求解:题目中说明了最后的宽度计算其实是按照满二叉树来进行计算的,也就是说如果我们能够得到每层最左边的节点编号和最右边的节点编号,那么本题就可以进行解决了。另外,在如何编号的问题上,既然是满二叉树,那么编号的方式自然是父节点i,左子节点2*i,右子节点2*i+1。publ...
代码星球
·
2020-06-13
二叉
最大
宽度
Maximum
Width
序列化与反序列化二叉树
2018-06-1618:53:36序列化(Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。反序列化顾名思义就是通过信息流对对象进行重建的过程。一般来说序列化和反序列化有如下的作用:1、以某种存储形式使自定义对象持久化;2、将对象从一个地方传递到另一个地方。3、使程序更具维护性。本篇文章主...
代码星球
·
2020-06-13
序列化
二叉
自平衡二叉搜索树
2018-01-0523:54:29二叉搜索树的查找时间是和树高成正比的,在最坏条件下,查找的时间复杂度为O(n),因此要尽可能的使树的两边保持平衡,由此出现了自平衡的二叉树。一、AVL树在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。查...
代码星球
·
2020-06-13
平衡
二叉
搜索
树 & 二叉树
2018-01-0419:13:46一、树在计算机科学中,树(英语:tree)是一种数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。客观世界中有很多具有层次关系...
代码星球
·
2020-06-13
二叉
二叉搜索树BST
二叉搜索树(英语:BinarySearchTree),也称二叉查找树、有序二叉树(英语:orderedbinarytree),排序二叉树(英语:sortedbinarytree),是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不空,则右子树上...
代码星球
·
2020-06-13
二叉
搜索
BST
使用递归和非递归遍历二叉树
2017-07-0920:42:55遍历二叉树的主流方法有三种,分别是前序遍历,中序遍历,后序遍历。通常使用递归的算法进行遍历,这种遍历的代码编写简单,容易实现。不过,函数递归使用的函数栈,所以,一般这样的问题都可以用自定义的栈来替代递归函数。1、前序遍历前序遍历是指中间节点优先于左右两个子节点输出,所以使用递归的算法...
代码星球
·
2020-06-13
递归
使用
遍历
二叉
冒泡排序、选择排序、插入排序、快速排序、二叉树
冒泡排序(BubbleSort)冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次笔记两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行知道没有在需要的交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢&ldq...
代码星球
·
2020-06-13
排序
冒泡
选择
插入
快速
【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
Givenasinglylinkedlistwhereelementsaresortedinascendingorder,convertittoaheightbalancedBST. 给定一个升序的单链表。将它转换成一颗高度平衡的二叉树 解法一:将单链表中的值存入一个数组中,通过数组来构建二叉树。算法时间复杂度是...
代码星球
·
2020-05-25
排序
LeetCode-
面试
算法
经典
C#实现二叉查找树
简介 树是一种非线性结构。树的本质是将一些节点由边连接起来,形成层级的结构。而二叉树是一种特殊的树,使得树每个子节点必须小于等于2.而二叉查找树又是一类特殊的二叉树。使得每一个节点的左节点或左子树的所有节点必须小于这个节点,右节点必须大于这个节点。从而方便高效搜索。 &nbs...
代码星球
·
2020-05-17
实现
二叉
查找
二叉树的常见算法
二叉树的遍历先序遍历指的就是先访问本节点,再访问该节点的左孩子和右孩子;中序遍历指的就是:先访问左孩子,再访问本节点,最后访问右孩子;后序遍历指的就是:先访问左右孩子,最后访问本节点。层次遍历:按照树的每一层(高度)进行遍历。深度遍历递归实现:先序、中序、后序非递归实现:先序、中序、后序层次遍历 ...
代码星球
·
2020-05-09
二叉
常见
算法
首页
上一页
...
6
7
8
9
10
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他