Reverse Linked List

来源:互联网 发布:spring 源码阅读建议 编辑:程序博客网 时间:2024/05/16 04:31

题目:

Reverse a singly linked list.

click to show more hints.

分析:定义三个指针,分别指向当前节点,当前节点的下一个节点,和下一节点的下一节点,然后反转前两个节点,然后当前节点后移。

代码:

/** * 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) {        ListNode* temp1=NULL;        ListNode* temp2=NULL;        ListNode* temp3=NULL;        if(head==NULL)        {            return NULL;        }        temp3=head;        if(temp3->next==NULL)        {            return head;        }        temp2=temp3->next;        temp3->next=NULL;        temp1=temp2;        while(temp1)        {            temp2=temp1;            temp1=temp2->next;            temp2->next=temp3;            temp3=temp2;                    }        return temp2;            }};





0 0
原创粉丝点击