标签:
这道题比较简单,主要是给链表反序,所以可以设置三个指针,ptr0,ptr1指向要交换的两个结点,ptr2在交换之前先指向ptr1的下一个结点,
这样好为下一次交换做准备,即再往后移就可以了,直到末尾
#include<iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* reverseList(ListNode* head) {
if(head==NULL||head->next==NULL)
return head;
ListNode* ptr0=head;
ListNode* ptr1=head->next;
ListNode* ptr2;
ptr0->next=NULL;
while(1)
{
ptr2=ptr1->next;
ptr1->next=ptr0;
if(ptr2==NULL)
break;
ptr0=ptr1;
ptr1=ptr2;
}
return ptr1;
}
int main()
{
}
leetcode_206题——Reverse Linked List(链表)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4479964.html