您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。