作者sustainer123 (caster)
看板Marginalman
標題[閒聊] LeetCode 206
時間Tue Jan 3 21:01:02 2023
206. Reverse Linked List
給你一個Linked List,請把它倒轉。
Example 1:
Input: head = [1,2,3,4,5]
Output: [5,4,3,2,1]
Input: head = [1,2]
Output: [2,1]
Input: head = []
Output: []
思路:
首先確認linked list是否為NULL,若為NULL,回傳NULL。
再者設兩指針,next指向下一個位子,prev指向前一個位子,
head指向自己,換言之,指向現在的位子。
最後如程式碼所示,先將next移到head->next的位子,head->next指向prev,
prev移到head現在的位子,head移到下一個位子。
C Code
-----------------------
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head){
if(head == NULL){
return NULL;
}
struct ListNode* prev = NULL;
struct ListNode* next = NULL;
while(head != NULL){
next = head->next;
head->next = prev;
prev = head;
head = next;
}
return prev;
}
------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.193.220 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1672750866.A.634.html
推 heynui: 大師01/03 21:01
推 SecondRun: 你很棒01/03 21:16
你是程式大佬
※ 編輯: sustainer123 (223.137.193.220 臺灣), 01/03/2023 21:17:39