欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 鏈表的反轉(zhuǎn)

黃文隆1年前8瀏覽0評論

鏈表在計算機(jī)科學(xué)中是一種非常重要的數(shù)據(jù)結(jié)構(gòu)。它由節(jié)點組成,每個節(jié)點都包含數(shù)據(jù)和指向下一個節(jié)點的指針。在Python中,我們可以使用類來實現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)。而鏈表的反轉(zhuǎn)是鏈表操作中的一個基本問題,在本文中,我們將介紹Python中如何反轉(zhuǎn)鏈表。

class Node:
def __init__(self, val=None):
self.val = val
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def add_node(self, val):
if not self.head:
self.head = Node(val)
else:
temp_node = self.head
while temp_node.next:
temp_node = temp_node.next
temp_node.next = Node(val)
def print_list(self):
curr_node = self.head
while curr_node:
print(curr_node.val)
curr_node = curr_node.next
def reverse_list(self):
prev_node = None
curr_node = self.head
while curr_node:
next_node = curr_node.next
curr_node.next = prev_node
prev_node = curr_node
curr_node = next_node
self.head = prev_node
linked_list = LinkedList()
linked_list.add_node(1)
linked_list.add_node(2)
linked_list.add_node(3)
linked_list.add_node(4)
linked_list.print_list()
linked_list.reverse_list()
linked_list.print_list()

上述代碼實現(xiàn)了一個簡單的單向鏈表,包括添加節(jié)點、打印鏈表和反轉(zhuǎn)鏈表三個操作。其中反轉(zhuǎn)鏈表的實現(xiàn)方法為:

  • 設(shè)前驅(qū)節(jié)點初始值為None,當(dāng)前節(jié)點為鏈表頭結(jié)點
  • 遍歷整個鏈表,將當(dāng)前節(jié)點的next指針指向前驅(qū)節(jié)點
  • 將當(dāng)前節(jié)點設(shè)為前驅(qū)節(jié)點,將下一個節(jié)點設(shè)為當(dāng)前節(jié)點,繼續(xù)遍歷
  • 當(dāng)遍歷完鏈表后,將鏈表頭結(jié)點設(shè)為前驅(qū)節(jié)點

在運行完反轉(zhuǎn)操作后,再次打印鏈表即可看到反轉(zhuǎn)后的結(jié)果。

在Python中,反轉(zhuǎn)鏈表是一個非常基本的操作,可以幫助我們更好地理解鏈表的結(jié)構(gòu)和操作。同時,對于面試題和編程挑戰(zhàn),也是必不可少的技能。