【发布时间】:2021-03-18 06:48:25
【问题描述】:
这有两种可能的情况:
-
Node_1和Node_2不是头节点 -
Node_1或Node_2都是头节点
代码:
def swap_nodes(self, key_1, key_2):
if key_1 == key_2:
return
prev_1 = None
curr_1 = self.head
while curr_1 and curr_1.data != key_1:
prev_1 = curr_1
curr_1 = curr_1.next
prev_2 = None
curr_2 = self.head
while curr_2 and curr_2.data != key_1:
prev_2 = curr_2
curr_2 = curr_2.next
if not curr_1 or not curr_2:
return
if prev_1: #doubt from here
prev_1.next = curr_2
else:
self.head = curr_2
if prev_2:
prev_2.next = curr_1
else:
self.head = curr_1 #doubt till here
curr_1.next, curr_2.next = curr_2.next, curr_1.next
我无法理解这部分提到的疑问。有人可以解释这是如何工作的
【问题讨论】:
标签: python python-3.x linked-list