程序员试题试题及答案.docxVIP

  • 1
  • 0
  • 约7.9千字
  • 约 19页
  • 2026-05-19 发布于未知
  • 举报

程序员试题试题及答案

一、数据结构与算法

1.题目:给定单链表头节点head和整数m、n(1≤m≤n≤链表长度),要求反转链表中第m到第n个节点(包含m和n),返回反转后的链表头节点。

示例:输入head=[1→2→3→4→5],m=2,n=4,输出应为[1→4→3→2→5]。

答案:

解题思路:需定位到第m-1个节点(前驱节点),反转m到n节点,再连接前驱节点和反转后的头节点,以及反转后的尾节点和原n+1节点。

步骤:

-创建哑节点dummy(避免处理头节点特殊情况),dummy.next=head。

-找到前驱节点pre(第m-1个节点):通过循环m-1次移动指针。

-定义当前节点cur=pre.next(第m个节点),记录反转后的尾节点tail=cur(反转后变为第n个节点)。

-反转m到n节点:循环n-m次,每次将cur.next指向的节点(即next节点)插入到pre.next位置,完成局部反转。

-最终返回dummy.next。

代码实现(Python):

```python

classListNode:

def__init__(self,val=0,next=None):

self.val=val

self.next=next

文档评论(0)

1亿VIP精品文档

相关文档