Leetcode#206. 反转链表,C++实现

目录

  • 题目
  • 1. 递归法
  • 2. 插头法

题目

Leetcode#206. 反转链表,C++实现_第1张图片

1. 递归法

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head==NULL||(*head).next==NULL)
        {
            return head;
        }
        ListNode* Next=(*head).next;
        ListNode* NewHead=reverseList(Next);
        Next->next=head;
        head->next=NULL;
        return NewHead;
    }
}; 

2. 插头法

class Solution {
public:
    ListNode* reverseList(ListNode* head)
    {
        ListNode NewHead(-1);
        while(head!=NULL)
        {
            ListNode* Next=head->next;
            head->next=NewHead.next;
            NewHead.next=head;
            head=Next;
        }
        return NewHead.next;
    }
}; 

你可能感兴趣的:(数据结构与算法)