题意
删除链表的倒数第$n$个结点,返回链表的头结点。
思路
- 想法1:一趟扫描确定表长,第二趟删除第
len - n
个元素。时间复杂度:$O(n)$。 - 想法2:题目中问能否尝试使用一次扫描实现,思考一下。用两个指针就可以了,当前面的指针指向第$n$个元素时,后面的指针开始移动,这样他俩之间始终差$n$个元素,前面的指针指向最后的位置时,后面的指针正好指向倒数第$n$个元素。
代码
- 代码1:
1 | class Solution { |
- 代码2:
1 | class Solution { |
总结
好多“思维”题都要用到双指针的思想呢。