题目简介:
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
1 | 给定一个链表: 1->2->3->4->5, 和 n = 2. |
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
思路:
首先定义一个快指针,让其先走n歩。然后快慢指针一起走,当quick == NULL时,慢指针所指向的结点便是要删除的结点。
在慢指针走的过程中,保存其前驱结点,用于删除结点。
tip:
- 注意删除的是第一个结点时的情况特判。
代码如下:
1 | /** |
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
1 | 给定一个链表: 1->2->3->4->5, 和 n = 2. |
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
首先定义一个快指针,让其先走n歩。然后快慢指针一起走,当quick == NULL时,慢指针所指向的结点便是要删除的结点。
在慢指针走的过程中,保存其前驱结点,用于删除结点。
tip:
1 | /** |
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: true
tags: true