leetcode 鍊錶反轉 c語言實現

2022-08-19 21:09:12 字數 585 閱讀 3805

反轉乙個單鏈表。

示例:

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

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

使用迭代方法,**如下:

/*

* * definition for singly-linked list.

* struct listnode ; */

struct listnode* reverselist(struct listnode*head)

head->next =null;

return

pre;

}

遞迴方法如下:

struct listnode* reverselist(struct listnode*head)

}

總結下,遞迴的寫法,整體來看,遞迴可以分成兩個部分,乙個是,對最裡層的遞迴進行判斷,那麼對於這道題,最裡層的遞迴就是當head為空,或者head->next為空。然後寫第二個部分,從最外層開始,並且假設,剩餘的部分傳入遞迴函式返回的為已經反轉的鍊錶,然後做剩餘的部分。遞迴函式就是要注意乙個頭乙個尾,然後中間部分由遞迴完成就可以了。

leetcode 反轉鍊錶(C語言解答)

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?受雙指標思想的啟發,我這次使用了三指標思想,最前面的指標負責探路,後面的倆指標完成逆序的變換!但要注意特殊情況 1.鍊錶為空 2.鍊錶只有乙個值 3...

LeetCode 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?思路 雙指標,先用乙個指標算出鍊錶結點個數n,每次快指標從頭往先前移動n 步,慢指標往前移動1步進行交換即可。definition for sin...

LeetCode 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 思路分析 直接一趟掃瞄即可。方法二 遞迴 definition for singly linked list.struct listnode class solution listnode reversea...