一、题设
给你一个链表,删除链表的倒数第 n
个结点,并且返回链表的头结点。
二、基本思路
1.第一步先循环求出表长
2.第二步计算出插入点,直接从当前节点连接到下下个节点
三、代码实现
def removeNthFromEnd(self, head, n):
# 定义一个起始节点替换index
index = ListNode(0,head)
head = index
# 测长
lens = 0
while index.next:
index = index.next
lens += 1
# 多次利用嘿嘿
index = head
# 走几次
time = lens - n
for i in range(time):
index = index.next
index.next = index.next.next
return head.next
四、效率总结
这一题的重点在于返回值是ListNode型,我一直以为是整型😅
还有一点:head就是第一个数字节点。这里的head节点其实是假的头节点,其实是无头的,需要在head前面加一个节点以处理特殊情况,最后返回真头节点的next即可。