單鏈表的逆置

2021-10-05 21:41:18 字數 545 閱讀 8445

單鏈表的逆置是面試常考察的題型

下面總結做這個題型的兩種方法:

1.資料結構中棧的思想,先進後出,後進先出(利用陣列模擬棧)

**如下:

void

reverse

(list plist)

i--;//讓i成為陣列中最後乙個元素的下標

for(node *p=plist-

>next; p!=

null

; p=p-

>next)

//將陣列中的資料從後往前,重新賦值到鍊錶中

free

(arr)

;}

2.利用頭插的思想

**如下:

void

reverse

(list plist)

}

綜上,可以求出法一的時間複雜度為o(n), 法二的時間複雜度為o(1),在這個角度看法二更好一些。

單鏈表逆置

單鏈表逆置 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...