2 回答

TA貢獻1878條經驗 獲得超4個贊
對于初學者,您的 append 方法不起作用,并且會陷入無限的 while 循環,因為您在添加第一個元素時不會退出 append。正確的版本是
def append(self, data):
node = Node(data)
if self.head == None:
self.head = node
return
else:
temp = self.head
while temp.next:
temp = temp.next
temp.next = node
至于您的另一個問題,我們希望找到偶數和奇數列表的循環中間,second.next覆蓋奇數列表情況和second覆蓋偶數列表情況,因為第二個指針將指向空值,或者它將本身為 null ,如果你只使用其中一個,你會得到你描述的錯誤,因此你需要在 while 循環中同時擁有這兩個條件

TA貢獻1827條經驗 獲得超8個贊
該解決方案通過使用兩個指針來工作。第一個每次走 1 步,第二步一次走 2 步。但是,在采取 2 個步驟時,需要驗證兩件事:
有一個有效的下一步
在上面提到的下一步之后有一個步驟
如果您跳過一個檢查,它將進入循環,但在邊界條件下它找不到下一個。舉例說明:如果有 4 個節點并且您只second.next
在第 3 個節點處檢查,那么您將擁有second.next
有效并且您將進入while
循環但在其中您可以直接訪問second.next.next
F,S | 1 --> 2 --> 3 --> 4 --> 無
添加回答
舉報