程式設計開發習題反轉鍊錶問題解析

2021-12-30 03:01:51 字數 966 閱讀 1154

程式設計開發習題反轉鍊錶問題解析

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。

解:先定義乙個last指標,用來指向phead指標的下乙個結點

然後x0結點應該指向none,也就是phead.next=last,它會成為我們反轉之後的最後乙個結點,讓last指向x0:last=phead,phead = phead.next,這樣才完整的將x0給分離出來了

然後再相同的步驟,讓phead往後移,然後依次將x1、x2…..移到x0全面,從而完成鍊錶的反**

# -*- coding:utf-8 -*-

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

# 返回listnode

def reverselist(self, phead):

if phead == none or phead.next == none:

return phead

last = none

while phead != none:

tmp = phead.next #將phead的next儲存下來

phead.next = last #phead指向last,這一步其實是反轉鏈結的過程

phead = tmp #上面last已經代替了phead,此時phead就可以脫離反轉表繼續去原鏈結進行新一輪為拆分鏈結的搬運了

return last

程式設計開發教程 反轉鍊錶

程式設計開發教程 反轉鍊錶,兩種方法 遞迴法思路 在反轉當前節點之前先反轉後續節點。這樣從頭結點開始,層層深入直到尾結點才開始反轉指標域的指向。簡 單的說就是從尾結點開始,逆向反轉各個結點的指標域指向。head 是前一結點的指標域 ps 前一結點的指標域指向當前結點 head.getnext 是當前...

LeetCode習題 反轉鍊錶

輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null解題思路 遍歷鍊錶的同時,prev指標保持指向反轉後鍊錶的頭節點,pcur指標沿著鍊錶移動,移動的同時,將pcur當前指向的節點插入到prev之前,prev重新指向最新頭結點,pcur繼續移動,直到鍊錶尾部結束 definitio...

程式設計開發序列求和問題解析

問題描述求1 2 3 n的值。輸入格式輸入包括乙個整數n。輸出格式輸出一行,包括乙個整數,表示1 2 3 n的值。樣例輸入4樣例輸出10樣例輸入100 說明 有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。一般在提交之前所有這些樣例都需要測試通過才行,但這不代表這幾組樣例資料都正確了你的程式就是...