leetcode206: 反转链表


文章目录

  • 一、题目
  • 二、程序


一、题目

网址:反转链表。

难度:简单。

反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

进阶:

你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

二、程序

思路:使用迭代的思想,每次反转一个,讲next的地址指向前一个元素,同时不断更新头节点和新建的头节点。

leetcode206: 反转链表_第1张图片

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

结果:
leetcode206: 反转链表_第2张图片

你可能感兴趣的:(leetcode,链表,leetcode)