题解 | #调整牛群顺序#
调整牛群顺序
https://www.nowcoder.com/practice/a1f432134c31416b8b2957e66961b7d4
更多关于算法题解、软件开发面经、机器学习算法面经、各企业面试问题记录,关注Fintech砖,持续更新中。https://www.nowcoder.com/users/873777317
企业面试记录专栏https://www.nowcoder.com/creation/manager/columnDetail/0YBWnm
机器学习面经专栏https://www.nowcoder.com/creation/manager/columnDetail/j8nNy0
软件开发面经专栏https://www.nowcoder.com/creation/manager/columnDetail/0aXKaM
【1】题目考察的知识点:链表、快慢指针
【2】题目解答方法的文字分析 题目有误,应为倒数第n个节点
- 定义快慢指针:快慢指针为虚拟头节点,快指针先走n步,此时快慢同时走,快到终点时,慢的下一个节点为所要移动节点
- 进行链表段的拼接组合
【3】本题解析所用的编程语言:python
【4】完整且正确的编程代码
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def moveNthToEnd(self, head: ListNode, n: int) -> ListNode:
if head is None or head.next is None:return head
if n==1:return head
dummy=ListNode(-1)
dummy.next=head
fast=slow=dummy
for i in range(n):
if fast is not None:fast=fast.next
else: return head
while fast.next:
fast=fast.next
slow= slow.next
tail=slow.next
slow.next= slow.next.next
fast.next=tail
tail.next=None
return dummy.next
#晒一晒我的offer##我发现了面试通关密码##如何判断面试是否凉了##23届找工作求助阵地##软件开发薪资爆料#编程算法题详解集锦 文章被收录于专栏
牛客top101+牛客top202+leetcode热题