LeetCode206—反转链表
Posted jovesun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode206—反转链表相关的知识,希望对你有一定的参考价值。
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ //非递归写法 9 class Solution { 10 public: 11 ListNode* reverseList(ListNode* head) { 12 ListNode* prev = NULL; 13 ListNode* curr = head; 14 while (curr != NULL){ 15 ListNode* nextTemp = curr->next; 16 curr->next = prev; 17 prev = curr; 18 curr = nextTemp; 19 } 20 return prev; 21 } 22 };
1 //递归 2 class Solution { 3 public: 4 ListNode* reverseList(ListNode* head) { 5 if (head == NULL || head->next == NULL) 6 return head; 7 ListNode* p = reverseList(head->next); 8 head->next->next = head; 9 head->next = NULL; 10 return p; 11 } 12 };
以上是关于LeetCode206—反转链表的主要内容,如果未能解决你的问题,请参考以下文章
剑指offerJZ15——反转链表。leetcode206.反转链表