LeetCode---Reverse Linked List

来源:互联网 发布:中世纪2优化9特色 编辑:程序博客网 时间:2024/05/07 10:39

题目大意:给出一个单链表,使其逆转。

算法思想:

如果链表为空直接返回,设置3个指针,前驱指针,后继指针,当前遍历指针,然后遍历链表,遵循先继承再修改的原则转换每个节点的后继指针。当链表遍历完后,前驱节点为为头节点。返回修改后的链表。

代码如下:

/** * 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) {        if(head==NULL) return head;        ListNode *pre=head,*pnode=head->next,*temp;        pre->next=NULL;        while(pnode){            temp=pnode->next;            pnode->next=pre;            pre=pnode;            pnode=temp;        }        head=pre;        return head;            }};


0 0
原创粉丝点击