博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java--逆置链表
阅读量:3941 次
发布时间:2019-05-24

本文共 719 字,大约阅读时间需要 2 分钟。

思路:不断从原来链表中取出结点,头插到一个新的链表上

分析:
1)新定义一个新链表,而且是空链表
Node result = null;//result新链表的第一个结点的引用
2)遍历原来的链表
Node cur = head;
while(cur!=null){ cur=cur.next }
3)把每个遍历的结点(cur),头插到新链表(result)中
cur.next=result; result=cur;
在这里插入图片描述

class Solution {    public ListNode reverseList(ListNode head) {        ListNode result = null; //新链表result        ListNode cur = head;                 while (cur != null) {            ListNode next = cur.next;                         cur.next = result; //头插            result = cur;                        cur = next;        }                return result;    }}

代码中之所以没有直接使用cur=cur.next;而是使用Node next=cur.next; cur=next;是因为如果直接使用cur=cur.next,此时cur指向新链表的结点上,导致cur.next已经不再指向原链表的结点了,所以需要先保存cur.next再使cur=next。

转载地址:http://vrjwi.baihongyu.com/

你可能感兴趣的文章
Vue3.0+Vite2.0项目框架搭建(三)- 引入Element3
查看>>
使用Vue CLI v4.5(+)搭建Vue3.0项目框架搭建
查看>>
Java集合框架
查看>>
线程协作与生产者消费者问题
查看>>
Vue入门
查看>>
非starter方式实现springboot与shiro集成
查看>>
Starter方式实现Springboot与Shiro集成
查看>>
移动端多页面应用(MPA)的开发(一)
查看>>
移动端多页面应用(MPA)的开发(二)
查看>>
移动端多页面应用(MPA)的开发(三)
查看>>
移动端多页面APP(MPA)开发体验
查看>>
基于深度学习知识追踪研究进展(综述)数据集模型方法
查看>>
linux常见命令与FileZilla
查看>>
PostgreSQL和ElasticSearch学习笔记
查看>>
java反射
查看>>
paint 和 paintcomponent的区别
查看>>
JSP字节码的存放路径问题
查看>>
对RMQ的理解
查看>>
LCA的离线算法
查看>>
spark学习与资料
查看>>