翻转链表

来源:互联网 发布:java @apect 编辑:程序博客网 时间:2024/06/03 14:53

1、问题描述

      翻转一个链表,给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

2、实现思路

     将后面的元素依次前移,head后移与最后的元素交换位置,再成为前移元素的下一个。

3、代码

/**
 * Definition of ListNode
 * 
 * class ListNode {
 * public:
 *     int val;
 *     ListNode *next;
 * 
 *     ListNode(int val) {
 *         this->val = val;
 *         this->next = NULL;
 *     }
 * }
 */
class Solution {
public:
        ListNode *reverse(ListNode *head) {
        ListNode *last = NULL;
        while (head != NULL) {
            ListNode *a= head->next;
            head->next =last;
            last = head;
            head = a;
        }
        return last;
    }
};

4、感想

     从最后一个元素依次前移,head每次后移,与最后一个元素交换位置,再成为此前移元素的后一个。

0 0
原创粉丝点击