首页 > 其他分享 >leetcode206:反转链表

leetcode206:反转链表

时间:2022-09-05 21:57:59浏览次数:52  
标签:ListNode cur 反转 链表 leetcode206 prev 节点

package com.mxnet;

import java.util.Stack;

public class Solution206 {

    public static void main(String[] args) {

    }

    /**
     * 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
     * @param head
     * @return
     * 思路:
     * 1. 因为要完成链表反转,则只需改变链表的链接顺序
     * 2. 即将当前节点作为下一个节点的下一个节点
     * 3. 保存当前节点的前驱节点和后继节点,完成链表的转换
     * 4. 遍历链表完成反转
     */
    public ListNode reverseList(ListNode head) {
        //记录前驱节点
        ListNode prev = null;
        //使用辅助指针指向头节点
        ListNode cur = head;
        //循环遍历链表所有节点,完成反转
        while (cur != null){
            //记录当前节点的下一个节点
            ListNode next = cur.next;
            //使当前节点指向它的前驱节点
            cur.next = prev;
            //在进行下一次循环时 使当前节点成为下一个节点的前驱节点
            prev = cur;
            //移动当前节点
            cur = next;
        }
        return prev;
    }

}

标签:ListNode,cur,反转,链表,leetcode206,prev,节点
From: https://www.cnblogs.com/mx-info/p/16659731.html

相关文章

  • 344 反转字符串
    题目344反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用......
  • 删除链表的倒数第N个节点
    删除链表的倒数第N个节点给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例1:输入:head=[1,2,3,4,5],n=2输出:[1......
  • leetcode-链表-19
    /***<p>给你一个链表,删除链表的倒数第&nbsp;<code>n</code><em>&nbsp;</em>个结点,并且返回链表的头结点。</p>**<p>&nbsp;</p>**<p><strong>示例1:</strong><......
  • Problem P07. [算法课分治] 链表排序(归并排序)
    采用归并算法,先将一个链表分成两个链表,分到不能再分,然后再将已经排好序的链表有序地归并起来。主要问题:1.一个子链表如何分成两个。2.释放空间的问题(没有实现)#inclu......
  • 数据结构与算法学习笔记———链表(Linked List)
    链表(LinkedList)#该篇笔记转自【Python】python链表_小周ipython的博客-CSDN博客_python链表简介链表(LinkedList):是一种线性表数据结构。他是用一组任意的存储单元(可......
  • OpenHarmony中的HDF单链表及其迭代器
    概念为了性能考虑,嵌入式系统一般使用C语言进行开发,由于C语言标准库没有封装链表,所以嵌入式系统一般自己设计和实现链表这种数据结构。单链表是链表中的一种,本文描述Open......
  • 算法--链表
       方法一:构造链表如果此类型的题出现在笔试中,如果内存要求不高,可以采用如下方法:可以先用一个vector将单链表的指针都存起来,然后再构造链表。此方法简单易懂,代码好......
  • leetcode 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素(简单)
    一、题目大意给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。示例1:输入:head=[1,1,2]输出:[1,2]示例2:输入:h......
  • 设计链表
    设计链表设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使......
  • [数据结构10分钟入门] 面向初学者从零实现(基于C语言)-- 单链表
    ​一、链表是什么    链表是一种通过指针串联在一起的线性结构,在内存中是分散存储的(数组在内存中连续分布),链表由一系列节点组成,每个节点都由数据域和指针域组成。主......