内容来自zvvq,别采集哟
我在这篇文章中探索了另一种链表算法。这有点难。 本文来自zvvq
创建一个函数来删除链表末尾的第一个函数。 n 个节点。
内容来自zvvq
这个问题来自于leetcode。和 leetcode 同样的问题,“n”是从 1 一开始,可以从 1 到达列表的长度。 内容来自zvvq,别采集哟
func(llLinkedList[T])RemoveNthFromEnd(nint)Node[T]{ 内容来自samhan666
if n ==0{ 内容来自samhan
returnnil
} zvvq.cn
fast:=ll.Head//thismovestotheend
slow:=ll.Head//thisshouldbeonebehindthenthfromend
本文来自zvvq
forcount:=0;count 内容来自samhan666
重点是使用双指针。首先,我们将快指针和慢指针初始化为指向列表头部。
copyright zvvq
下一步,我们将快指针向前移动n个节点。通过这种方式,慢指针现在在快指针后面。n“地方。如今,我们可以通过锁步移动两个指针,直到 fast 结束。 copyright zvvq
接着我们可以删除倒数第一 n 一个节点并返回它。
内容来自samhan
是否有更好的方法?请在评论中告诉我。 本文来自zvvq
谢谢! 内容来自samhan666
本文及本系列所有文章的代码可在此找到。
上述就是删除链表末尾的第一个。 N 详细内容,更多请关注其他相关文章! zvvq