随笔分类 -  数据结构

摘要:AVL树又叫做二叉平衡树,每当我们插入一个节点的时候都要检查该树是否平衡,即在二叉树中是否存在某个节点的左右子树高度的绝对值相差大于1.如果 大于一,则需要分为LL,RR,LR,RL四种情况来分别讨论,但是实际上只需要使用JAVA实现LL,RR这两种类型就行 对于LR,和RL这两种情况只需要分 别重 阅读全文
posted @ 2016-04-30 20:43 winAlaugh 阅读(616) 评论(0) 推荐(0)
摘要:题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 我的代码 思路 :采用递归,交换该二叉树中所有节点的左右子树。看着复杂的题目,只 阅读全文
posted @ 2016-04-29 21:42 winAlaugh 阅读(254) 评论(0) 推荐(0)
摘要:1 先采用遍历找出树一中是否含有树二的头结点 2 如果不含有,返回false,如果含有使用isSubTree判断树二是否是树一的子树 联想 不仅对于二叉树,对于任何非线性的数据结构中均可以采用该方法 例如图结构 阅读全文
posted @ 2016-04-29 21:02 winAlaugh 阅读(1355) 评论(0) 推荐(0)
摘要:在这里,我没有采取map键值对的形式来表示二叉搜索树的节点,对于搜索树的节点我采取了含有三个引用型的变量分别指向父节点,左子节点,右子节点。 还包含有一个int类型的数据,当然在正式搜索二叉树中应该采用键值对的形式。以下为代码,其中还有一个bug 阅读全文
posted @ 2016-04-24 19:26 winAlaugh 阅读(323) 评论(0) 推荐(0)
摘要:注意事项 1 在SingleList中定义一个head节点 2 注意如何实现链表删除操作的 3 疑问 在任何非main的函数中都可以 使用Node node = new Node(num);但是为何 在main函数中就不行了呢。我知道这是内部类的范畴 阅读全文
posted @ 2016-04-18 21:28 winAlaugh 阅读(1229) 评论(0) 推荐(0)
摘要:思路一:定义三个节点分别为当前节点cur,前一个节点pre,后一个节点next 我们需要当前节点由指向next转变为指向pre,并且我们必须先将下一个节点缓存起来否则改变了当前节点的指向 我们无法继续遍历整个链表了。 即步骤如下 1 缓存当前节点的下一个节点 next=cur.next; 2 将当前 阅读全文
posted @ 2016-04-03 01:14 winAlaugh 阅读(246) 评论(0) 推荐(0)
摘要:思路先遍历整个链表得到长度,然后根据总长度和K得到节点到头结点的距离 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class So 阅读全文
posted @ 2016-04-02 20:59 winAlaugh 阅读(336) 评论(0) 推荐(0)
摘要:剑指offer上的题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 首先很明显这是一个斐波那契数列的问题,但是我觉得这是一个变种比较大的斐波那契数列原因如下 而并不是如书中所描述的一样 当阶梯为1时只有一种方法 当阶梯为2时有两种方法 故代码应该如下 阅读全文
posted @ 2016-03-24 16:51 winAlaugh 阅读(212) 评论(0) 推荐(0)
摘要:今天网易实习生招聘中的笔试有一道是关于栈的应用,应用场景为括号匹配。由于习惯使用IDE而现场考试环境为 普通编辑器,擦,考试写着按Ctrl+I能够自动联想代码, 我去,用不了 感觉自己写的并不怎么样 现在 自己回来写了一遍 输入一串字符串“()【】{}”组成,判断是否括号匹配 在我的代码中 可以连续 阅读全文
posted @ 2016-03-23 00:20 winAlaugh 阅读(174) 评论(0) 推荐(0)