力扣c語言實現 206 反轉鍊錶 一點理解

2021-09-23 15:39:53 字數 819 閱讀 5176

原題目連線

反轉乙個單鏈表。

示例:輸入: 1->2->3->4->5->null

輸出: 5->4->3->2->1->null

高階:你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?

//乙個刷題以來一直碰到的問題:

就是很容易complier就會報錯:「member access within null pointer of type 『struct list』」

說白了就是,我們知道這個結點為null,我們的目的是故意將這個結點置為null,然後以此判斷跳出迴圈條件為真,但是這是我們的思維方式,和編譯器的執行方式是不同的,編譯器必須先判斷乙個結點不為null,才能去訪問它,而不是先訪問到,再去判斷是否為null,這顯然已經訪問了乙個null值,這樣編譯器當然報錯。

//2018-12-10

struct listnode*

reverselist

(struct listnode* head)

typedef

struct listnode list;

list* new_head =

malloc

(sizeof

(list));

new_head->next=

null

; list* p = head;

list* pnext = p->next;

while

(p&&pnext)

p->next = new_head->next;

return p;

}```c

力扣 206反轉鍊錶

package leetcode真題分門別類.鍊錶 author bennyrhys date 2020 05 29 11 42 思路 鍊錶翻轉,直接改變指標指向 儲存狀態需要建立三個指標 pre前 cur當前 next下乙個 複雜度 時間o n 空間o 1 注意while處正好判斷cur是否為空的...

力扣 206 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 三個指標往後移,當 cur 指標為空時跳出迴圈 1 2 definition for singly linked list.3 public class listnode 7 8 9class soluti...

python力扣206反轉鍊錶

原題鏈結 1.雙指標反轉 非迭代法的主要思想就是設定兩個指標,指標每向前移動一下就反轉一下 class solution def reverselist self,head listnode listnode pre none cur head while cur 當cur null時迴圈結束 tm...