反转链表

原题链接 反转链表

题目描述
输入一个链表,反转链表后,输出新链表的表头。


题目要求很简单,看一下解题思路。
解题思路:

网课解题思路

  1. 利用next 备份head->next
  2. 修改head->next,让其指向新链表的头节点new_head
  3. 移动head与new_head

代码如下

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        ListNode* new_head = NULL;//指向新链表头节点的指针
        while(pHead){
            ListNode* next = pHead->next;//对应第一步
            pHead->next = new_head;//对应第二步
            new_head = pHead;//对应第三步
            pHead = next;//对应第三步
        }
        return new_head;
        
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容