摘要: 平衡二叉树的定义:如果每一个节点的左子树和右子树的高度差不超过1,那么这可树就是平衡二叉树。判断一个树是否为平衡树,把握三点。(1)左子树是否平衡 (2)右子树是否平衡 (3)左子树的高度和右子树的高度差值低于1递归的套路package class_04;public... 阅读全文
posted @ 2019-01-15 23:29 Horken 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 思路:如何序列化,就如何反序列化。每个节点值后面用 ‘!’表示结束,‘#’表示空。如下按先序遍历,序列化为:1!2!4!#!#!5!#!#!3!6!#!#!7!#!#!,注意空节点,要添加进来package class_04;import java.util.Link... 阅读全文
posted @ 2019-01-15 22:24 Horken 阅读(118) 评论(0) 推荐(0) 编辑
摘要: f(n)= f(n-1)+ f(n-2), f(1)= 1,f(2)= 2; 牛客网题目一: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析: 链接:https://www.nowcoder.com/questi 阅读全文
posted @ 2019-01-15 14:19 Horken 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 二叉树的后继结点的定义:为该二叉树的中序遍历后,该节点后面一个结点即使该节点的后继结点。如图:中序遍历的结果是,4251637,所以 4的后继结点是2 ,2的后继结点是5package class_04;public class Code_03_SuccessorNo... 阅读全文
posted @ 2019-01-14 23:41 Horken 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 建议大家在小本本上,模拟一下,遍历路径,才能更好的理解代码代码如下:package class_04;import java.util.Stack;public class Code_01_PreInPosTraversal { public static class... 阅读全文
posted @ 2019-01-14 23:30 Horken 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 1. ‘回’字型打印 思路:从最外回字往里面一层层打印。如: 代码如下:package class_03;public class Code_06_... 阅读全文
posted @ 2019-01-08 22:01 Horken 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 两个队列实现栈: 每次进入一个队列,取出得时候,把所有元素进入另一个队列,只留下一个元素,以此实现栈的先进后出(FILO)。package algorithmByMySelf;import java.util.LinkedList;import java.util... 阅读全文
posted @ 2019-01-04 00:15 Horken 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 首先讨论的问题:给定一个数组,求如果排序后,相邻两数的最大值,要求时间复杂度 O(n)?桶:数组长度N,设计一个桶,数量为(N+1)个桶,数组最小值放进第一个桶,数组最大值放进最后一个桶,每一个桶都要包含min,max,这两个边界值。所以中间一定存在一个空桶,那么就可... 阅读全文
posted @ 2019-01-02 23:43 Horken 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 堆:就是完全二叉树,注意与满二叉树的区别,完全二叉树,从左往右依次有节点,节点缺一不可用数组表示完全二叉树,下标对应的关系,父:(i+1)/2,左孩子 2*i+1,右孩子 2*i+2。大根堆:这棵树的任何子树的结点,都是父节点大。小根堆:这棵树的任何子树的结点,都是父... 阅读全文
posted @ 2019-01-01 23:43 Horken 阅读(146) 评论(0) 推荐(0) 编辑
摘要: (1).经典快排的思路:首先选中数组最后一个元素x, x 的放数组右边,中间是 x。左边和右边(注意x,这一个元素已经排好,不需要操作了)无限递归继续上述操作,直至整体有序。如下图:(2).参照荷兰国旗问题的改进快排:首先选中数组最后一个元素x, x 的放数组右边,=... 阅读全文
posted @ 2019-01-01 21:32 Horken 阅读(146) 评论(0) 推荐(0) 编辑