计算机类专业课后习题及答案解析
!
习题 1:数据结构 - 链表反转
!
题⽬:
给定⼀个单链表的头节点 head ,请编写⼀个函数,返回新链表的头节点,新链表是原链表的反
转。
示例:
答案解析:
链表反转是⼀个经典的数据结构问题。解决这个问题的关键在于迭代地改变链表中每个节点的
next 指针。以下是使⽤ Python 语⾔的解决⽅案:
在这段代码中,我们使⽤三个指针 prev 、 current 和 next_temp 来追踪和反转链表。 prev 指
针始终指向已反转部分的最后⼀个节点, current 指针遍历原链表,⽽ next_temp ⽤于临时存储
下⼀个待反转的节点。
习题 2:算法 - 排序算法
!
输⼊: head = [1,2,3,4,5]
输出: [5,4,3,2,1]
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
prev = None
current = head
while current:
next_temp = current.next
current.next = prev
prev = current
current = next_temp
return prev