NO15、反转链表(贼经典,建议多多刷,不开玩笑,要闭着眼睛写出来那种)

15、反转链表

输入一个链表,反转链表后,输出新链表的表头。

示例1
输入

{1,2,3}

返回值

{3,2,1}

很好的解答

https://blog.csdn.net/qq_42351880/article/details/88637387

1、头插法 很经典的做法啊
struct ListNode {
    int val;
    struct ListNode* next;
    ListNode(int x) :
        val(x), next(NULL) {
    }
}; 

ListNode* ReverseList(ListNode* pHead) {

    struct ListNode* Head = NULL;
    struct ListNode* node = (ListNode*)malloc(sizeof(struct ListNode));

    while (pHead != nullptr) {
        node = pHead;
        pHead = pHead->next;

        node->next = Head;
        Head = node;
    }
    return Head;
}

void test02()
{
    ListNode* head = (ListNode*)malloc(sizeof(ListNode));
    head->val = 1;

    ListNode* node1 = (ListNode*)malloc(sizeof(ListNode));
    node1->val = 2;

    ListNode* node2 = (ListNode*)malloc(sizeof(ListNode));
    node2->val = 3;

    ListNode* node3 = (ListNode*)malloc(sizeof(ListNode));
    node3->val = 4;

    head->next = node1;
    node1->next = node2;
    node2->next = node3;
    node3->next = nullptr;

    auto node = ReverseList(head);
    while(node!=nullptr){

        cout << node->val << endl;
 

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

带你刷完67道剑指offer 文章被收录于专栏

- 本专栏汇集了67道剑指offer的一些精妙解法,不少题有5-6种解法之多,有些题目二刷三刷的解法也不一样。 - 本专栏帮助我拿到6个互联网大厂offer,最终圆梦字节跳动公司。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务