206. Reverse Linked List

来源:互联网 发布:手机淘宝客户端软件 编辑:程序博客网 时间:2024/05/01 01:56

题目

Reverse a singly linked list.

click to show more hints.

Subscribe to see which companies asked this question.

Show Tags
Show Similar Problems


思路

两个指针一前一后遍历翻转链表指向,注意最后要把最开始的head的next指针弄成NULL


代码

/** * 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 || head->next == NULL)        {            return head;        }        ListNode* preNode = head;        ListNode* laterNode = head->next;        ListNode* tempNode = NULL;        while(laterNode != NULL)        {            tempNode = laterNode->next;            laterNode->next = preNode;            preNode = laterNode;            laterNode = tempNode;        }        //最后一定要把反转后的最后一个节点next置NULL        head->next = NULL;        return preNode;    }};
0 0
原创粉丝点击