1. 题目描述 输入一个链表,输出该链表中倒数第k个结点。 2. 思路和方法 可以用两个指针,一个指针遍历到第k个结点的时候,第二个指针再走到第一个节点,然后两个指针的距离始终保持k-1。这样,当第一个指针的next==NULL,也就是走到最后一个节点的时候,第二个指针对应的位置,就是倒数第k个结点 ...
分类:
其他好文 时间:
2019-08-26 00:53:03
阅读次数:
146
双链表的插入新节点与删除节点 关于插入新节点,双链表和单链表用到的方法一样,唯一不同的是双链表还需要将指向前一个数据节点的指针里面存放的地址按照逻辑进行交换 关于删除节点,单链表用到了两个指针,一个指针指向需要删除的某一个节点,另一个指针指向删除前面一个节点,才可以做到整个链表不会乱,双链表因为有一 ...
分类:
其他好文 时间:
2019-08-25 14:04:01
阅读次数:
60
1:采用二分法解答这个问题, mid = low + (high - low)/2 需要考虑三种情况: 1.array[low]>array[high] : 用两个指针来操作: 相当于二分法 低位指针在第一个递增序列内;高位指针在第二个递增序列内; (1)array[low]<array[mid] ...
分类:
编程语言 时间:
2019-08-18 13:46:42
阅读次数:
84
1.选择从前向后 替换空格 每次重复挪动;效率低; 算法时间复杂度 O(n²) 2.选择从前向后 替换空格 利用两个指针操作!! ...
分类:
其他好文 时间:
2019-08-16 23:13:04
阅读次数:
120
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 1 struct RandomListNode { 2 int label ...
分类:
其他好文 时间:
2019-08-16 18:23:43
阅读次数:
73
题目:输入一个链表,输出该链表中倒数第k个节点。 注: 使用两个指针,一个指针先走k步,然后两个指针同时走,当前一个指针到达链表尾部的时候,后一个指针指向的就是倒数第k个节点。本题要注意输入数据的判读,头节点是否为空,k是否大于0以及k是否小于链表总长度。 ...
分类:
其他好文 时间:
2019-08-14 20:13:42
阅读次数:
75
Leetcode刷题总结 目前已经刷了50道题,从零开始刷题学到了很多精妙的解法和深刻的思想,因此想按方法对写过的题做一个总结 双指针法 双指针法有时也叫快慢指针,在数组里是用两个整型值代表下标,在链表里是两个指针,一般能实现O(n)的时间解决问题,两个指针的位置一般在第一个元素和第二个元素或者第一 ...
分类:
其他好文 时间:
2019-08-11 14:56:00
阅读次数:
92
思路:因为数组是递增排序的,和相同的两个数,隔的越远,积越小,因此用两个指针,一个从前一个从后找,找到的第一个就是想要的最小的一组了 ...
分类:
编程语言 时间:
2019-08-10 19:43:12
阅读次数:
91
快速排序 快速排序也是最常用的排序算法,和归并算法一样,快速排序也采用分治的方法,将原始数组分为较小的数组。(但是并没有像归并排序那样将它们分开) 思路: 1.从数组中选择中间一项作为主元; 2.创建两个指针,左边一个指向数组的第一项,右边指向数组最后一项。移动左指针直到我们找到一个比主元大的元素, ...
分类:
编程语言 时间:
2019-07-25 00:20:19
阅读次数:
140