206. Reverse Linked List
Reverse a singly linked list.
反轉鏈表:
1)對于空鏈表或者一個節點鏈表無需反轉,返回即可。
設計思路:
1)首先把當前節點外的剩下節點保存在next中。
2)處理當前節點,主要把當前節點的next指針指向部分反轉鏈表list中。
3)再把加入了當前節點的的head賦值給list即可。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head)
{
if ( head == NULL || head->next == NULL )
{
return head;
}
struct ListNode *list = NULL;
struct ListNode *next = NULL;
for ( ; head; head = next )
{
next = head->next;
head->next = list;
list = head;
}
return list;
}設計盲區:不要老想著對新鏈表指向list進行處理,換位思考處理head,會節省不少代碼量
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。