Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space fo ...
分类:
其他好文 时间:
2017-10-02 23:47:01
阅读次数:
250
思路:使用两个指针p1和p2遍历链表,p1在前p2在后。若p1指向的值小于p2指向的值,则p2向前走,直到二者不相等,然后更改p1的指针,再将p1和p2都向前走一步,这么做直到p2到达链表尾部。 ...
分类:
其他好文 时间:
2017-10-02 13:27:59
阅读次数:
209
一、题目 输入一个链表,输出该链表中倒数第k个结点。 二、思路 两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了。 三、代码 /* public class ...
分类:
其他好文 时间:
2017-10-01 14:47:50
阅读次数:
182
题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路: 1.遍历链表得到链表的长度l,找到从前往后的第l-k+1个节点。需要遍历两遍。 2.遍历一次即可的方法:两个指针,第一个指针从头向尾移动k-1步后第二个指针开始从头向尾移动,第一个指针到尾结点时第一个指针指向倒数第k个结点。 ListNo ...
分类:
其他好文 时间:
2017-09-28 10:45:00
阅读次数:
119
使用了NIL来当做链表的头和尾,构建的时候也用插入函数插入,在遍历的时候只要判断当前的指针指向的内容是不是NIL即可。 关于NIL节点的使用: 关于内存池的使用: 插入的时候对于四个指针进行操作: 删除的时候对于要删除的节点的前一个节点和后一个节点的两个指针的操作: 完整测试代码: ...
由于线性存储结构有顺序存储和链式存储两种,而队列是一种特殊的线性结构,所以,队列自然也会有链式存储结构,这种存储结构,称之为“链队列”。只不过,这种结构需要两个指针,一个指针指向队列的头部,一个指针指向队列的尾部。虽然队列采用了链式存储这种方式,但是它本质..
分类:
其他好文 时间:
2017-09-24 18:25:42
阅读次数:
167
队列的一个非常重要的特点就是:只允许在队列的头部进行删除操作,只允许在队列的尾部进行插入操作。所以,很明显,队列这种结构需要两个指针,一个指针指向队列的头部,一个指针指向队列的尾部。既然队列这种结构也是用来存放数据的,当有一个数据存入队列中时,指向尾部的指..
分类:
其他好文 时间:
2017-09-24 18:20:50
阅读次数:
141
这道题为简单题 题目: 思路: 这个题标记为用两个指针,但是我没这么做,我先排序然后把前面的0移到后面去,但是我发现这样做太傻,在看了这个标题之后我才发现有更好的方法,首先设置一个变量j,用i索引遍历整个列表,如果nums[i] != 0,那么把nums[i]和nums[j]值交换,并且将j += ...
分类:
其他好文 时间:
2017-09-21 23:26:21
阅读次数:
193
基本思想: 1)首先需要一个临时空间temp用来存放合并后的元素,长度为排列好的元素总个数。 2)取两个指针,分别为左右部分数组的头元素。 3)比较指针指向元素,将较小(较大)的那个放入temp(注意相等时不做元素位置交换),并将两指针向后移动一个step。 4)循环步骤3直到其中一段数组没有剩余元 ...
分类:
编程语言 时间:
2017-09-19 00:10:13
阅读次数:
244
题目: 输入一个链表,输出该链表中倒数第k个结点。 思路: 两个指针一个先走k步,然后两个一起走,先走的到达终点时后一个指向的就是所求的节点,注意可能长度小于k,这时候应该返回null 代码: ...
分类:
其他好文 时间:
2017-09-13 16:20:43
阅读次数:
159