反转链表

作者: storm_lincoln | 来源:发表于2019-03-01 15:32 被阅读0次

    原题链接 反转链表

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


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

    网课解题思路
    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;
            
        }
    };
    

    相关文章

      网友评论

        本文标题:反转链表

        本文链接:https://www.haomeiwen.com/subject/oyvduqtx.html