剑指Offer - 面试题24. 反转链表(遍历/递归)
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer - 面试题24. 反转链表(遍历/递归)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
定義一個(gè)函數(shù),輸入一個(gè)鏈表的頭節(jié)點(diǎn),反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后鏈表的頭節(jié)點(diǎn)。
示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL限制: 0 <= 節(jié)點(diǎn)個(gè)數(shù) <= 5000來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
相同題目:LeetCode 206. 反轉(zhuǎn)鏈表
2.1 循環(huán)
class Solution { public:ListNode* reverseList(ListNode* head) {if(!head)return head;ListNode *prev = NULL, *nt = head->next;while(head && head->next){head->next = prev;prev = head;head = nt;nt = nt->next;}head->next = prev;return head;} };2.2 遞歸
class Solution {ListNode *newhead; public:ListNode* reverseList(ListNode* head) {if(!head || !head->next)return head;ListNode *newHead = reverseList(head->next);head->next->next = head;//head->next下一個(gè)的next指向前面headhead->next = NULL;//避免循環(huán)鏈表return newHead;//每層都返回最后一個(gè)節(jié)點(diǎn),新的頭} };總結(jié)
以上是生活随笔為你收集整理的剑指Offer - 面试题24. 反转链表(遍历/递归)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 315. 计算右侧小于
- 下一篇: 程序员面试金典 - 面试题 10.11.