Leetcode題庫 迭代逆置單鏈表

2021-10-05 10:29:02 字數 765 閱讀 6804

要求:

逆置乙個單鏈表

測試案例:1-2-3-4-5-6

輸出結果:6-5-4-3-2-1

迭代法解題思想:

//這種方法實際上時迭代,用pre。cur.curnext來進行操作,pre儲存cur的前乙個節點,

// curnext儲存cur後乙個節點,然後將cur指向它的前驅pre,判斷curnext是否為空如果curnext為空則說明

// curnext的前驅cur是新的煉表頭節點,同時cur是整個迴圈的大前提,如果cur為空,那麼說明逆置完畢。

// 迭代關係先後順序應該是:

指向pre 2.pre=cur 3.cur=curnext 4.curnext=cur.next(需要curnext對cur的下乙個節點進行儲存

// 因為一旦逆置,因為是單向的,所以會丟失原本cur的下乙個節點位址)

public node back()

node pre = null;

//需要考慮乙個節點的情況,當只有乙個節點時,迴圈進去後該節點為頭,跳出一層迴圈後pre和cur重合

node cur =

this

.head;

node newhead = null;

while

(cur != null)

cur.next = pre;

pre = cur;

cur = curnext;

}return newhead;

}

單鏈表逆置

單鏈表逆置 include include define item num 10 typedef struct tagnode node node linklist create void linklist destroy node head void linklist print node hea...

單鏈表逆置

name 單鏈表逆置 author 巧若拙 date 22 11 14 16 13 description 分別用遞迴和非遞迴兩種方式實現單鏈表 不含頭結點 的逆置 include include include typedef char elemtype typedef int status 函式...

單鏈表逆置

最近在leetcode oj上刷題,將一些演算法題的解法記錄下來,也期待一些新的更好的方法。題目是這樣滴 206.reverse linked list reverse a singly linked list.hint a linked list can be reversed either it...