zoukankan      html  css  js  c++  java
  • LeetCode 206. Reverse Linked List

    206. Reverse Linked List

    Example:

    Input: 1->2->3->4->5->NULL
    Output: 5->4->3->2->1->NULL

    Follow up:

    A linked list can be reversed either iteratively or recursively. Could you implement both?
    链接列表可以反复或递归地反转。 你能同时实施吗?

    Accepted
    550.9K
    Submissions
    1M

    代码

    /**
     * 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
                head->next=new_head;        //更新head->next
                new_head=head;              //移动new_head
                head=next;      //遍历链表
            }
            return new_head;    //返回新链表头节点
        }
    };
    

    分析

    要将一个链表逆向,先声明一个指向新链表头节点的指针,从旧链表的头开始遍历,一直到旧链表的尾。
    声明一个指针指向旧链表的头指针指向的节点,将其备份下来;
    然后让旧链表的头指针指向的节点等于新链表头节点的指针,(一开始为NULL);
    之后新链表的头指针指向旧链表的头指针,旧链表的头指针指向旧链表的下一个节点。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    c# 事件阻断
    正则语义化API
    c# 防止继承和单例
    Maxscript 控制流混淆
    3dmax快速安装补丁的方法
    c# 使用类中的方法更新自己
    Maxscript 变量作用域
    Maxscript 键值对
    Maxscript 数据结构和算法记录
    Datawhale 之NLP学习-打卡(五)
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338473.html
Copyright © 2011-2022 走看看