上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 37 下一页
摘要: 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 利用中序遍历法,记录一个前驱结点,然后将当前结点的左孩子指向前驱节点,这样的话,向左< 表示逆序,然后将前驱结点的右孩子指向当前节点-->,可以形成正序。 在这里 阅读全文
posted @ 2018-03-31 08:40 SkyeAngel 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 平衡二叉树 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 平衡二叉树的概念:为空树,或者左右两边的高度差不超过1 自己想的笨方法:从根部开始,采用前序遍历法,依次求左右子树的深度,然后求它们的差,遇到不符合要求的结点的返回false,否则递归的进行后续子结点的高度的求解 IsBalanced_So 阅读全文
posted @ 2018-03-31 08:06 SkyeAngel 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 字符串的排列 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 解:就是将字符串abc当前位置的字符和下一个字符进行交换,递归 阅读全文
posted @ 2018-03-30 10:56 SkyeAngel 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 两个链表的第一个公共结点 输入两个链表,找出它们的第一个公共结点。 解:刚开始看这道题的时候,想的很简单,就是两个一起遍历,然后找到一样个一样的值就返回就行了,后来一直不通过,就很郁闷。 然后看了解析,说的是第一个公共结点的意思其实是从这一个公共结点之后的结点一直都是一样的。直到链表的末尾。 所以可 阅读全文
posted @ 2018-03-30 09:48 SkyeAngel 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 数组中只出现一次的数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 在位运算中的异或 ^ 可以将两个相等的数组消去,而在这一题目中,有两个不相等的数字,所以他们之间至少有一位不同, 含有1(如5和2 1001 0010)异或之后的结果是1011,在数 阅读全文
posted @ 2018-03-29 11:19 SkyeAngel 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 最小的K个数 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 排序——堆排序 利用堆排序中的构造小顶堆的方法,依次构造k次,然后就可以求出最小的k个数 阅读全文
posted @ 2018-03-29 10:33 SkyeAngel 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 堆结构:是一个完全二叉树 i的左右结点分别为2 * i + 1 和 2 * i + 2, 父结点:(i - 1)>>1 构建大根堆heapInsert:每次添加进来的结点 i 找到它的父结点(i-1)>>2,若大于父结点,则交换,继续寻找此时父结点的父结点 调整大根堆heapIfy:将交换后的结点与 阅读全文
posted @ 2018-03-28 21:48 SkyeAngel 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 归并排序的实质就是将数据先划分为小组,在两个相邻小组内部排序之后,再扩大小组进行排序 注意: 1、在两个小组内部排序的时候,需要用到一个辅助数组,来将两个小组中的数据进行排序,排完序之后,将辅助数组中的数据拷贝回原数组中的适当位置即可 2、再求mid时,有一个简单的防止溢出,快捷的方法,mid = 阅读全文
posted @ 2018-03-28 21:48 SkyeAngel 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 二叉树中和为某一值的路径 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 解:在这个题目中,求二叉树指定路径,判断条件就是在叶子结点处,此时target==0 而要想求一棵二叉树一条路径的长度的话,只有前序 阅读全文
posted @ 2018-03-28 16:32 SkyeAngel 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1.选取枢纽元:三数中值分割法,得到的中间值即作为mid,将数组分为arrays[mid]左边的比它小,右边的比它大 2.进行划分partition:首先将arrays[mid]放在arrays[high]处,然后对数组范围内的数值进行比较, (左右两边分别有一个指针来进行寻找,arrays[lef 阅读全文
posted @ 2018-03-27 21:48 SkyeAngel 阅读(178) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 37 下一页