Leetcode 206. 反转链表 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 206. 反转链表 解题思路及C++实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解題思路:
利用三個(gè)指針 left、right、tmp。left指向的是每一步反轉(zhuǎn)之后的頭結(jié)點(diǎn),right指向的是當(dāng)前需要反轉(zhuǎn)的節(jié)點(diǎn),tmp指向的是下一步需要反轉(zhuǎn)的節(jié)點(diǎn)。
?
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode* reverseList(ListNode* head) {if(!head || !head->next) return head;ListNode* left = head;ListNode* right = head->next;left->next = NULL;ListNode* tmp;while(right){tmp = right->next;right->next = left;left = right;right = tmp;}return left;} };?
?
?
總結(jié)
以上是生活随笔為你收集整理的Leetcode 206. 反转链表 解题思路及C++实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Leetcode 203. 移除链表元素
- 下一篇: Leetcode 168. Excel表