[剑指offer] 从尾到头打印链表
本文首发于我的个人博客:尾尾部落
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
解题思路
一种方法是利用栈来实现;
另外一种方法是利用三个指针把链表反转,关键是 r 指针保存断开的节点。
参考代码
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if(listNode == null)
return new ArrayList<Integer>();
ListNode head = listNode;
ListNode cur = listNode.next;
while( cur!= null){
ListNode temp = cur.next;
cur.next = head;
head = cur;
cur = temp;
}
//此时listNode的next还指向第二个node,所以要让listNode.next=null,防止循环
listNode.next = null;
ArrayList<Integer> res = new ArrayList<Integer>();
while(head !=null){
res.add(head.val);
head = head.next;
}
return res;
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
java源码-AtomicInteger
开篇 AtomicInteger位于java.util.concurrent.atomic包下,是java提供给的可以保证数据的原子性操作的一个类。 Atomicxxxx系列主要核心在于Unsafe这个类的运用保证线程安全,而Unsafe这个类应该是通过JNI调用的底层实现。 关于unsafe类可以看看揭秘sun.misc.Unsafe,虽然我还是没怎么看懂。记住unsafe这个东西很重要,不过据说在jdk9之后应该会被弃用了。 AtomicInteger类构造器 AtomicInteger类构造器有两个: 无参构造函数采用默认值初始化为0 有参数构造函数直接用initialValue来value的 AtomicInteger的关键逻辑在于static代码快中通过unsafe接口初始化value的内存地址,后续直接通过内存地址进行操作。 另外我们需要注意到value是用volatile进行修饰保证变量的可见性,这个有空一定要仔细研究研究。 public class AtomicInteger extends Number implements java.io.Serial...
-
下一篇
PHP读取配置文件连接MySQL数据库
读取配置文件方法parse_ini_file($filepath [,$section]) 代码: conn.php <?php //连接数据库 //$conn =new mysqli('localhost','root','','test') or die("连接失败<br/>"); //读取配置文件 $ini= parse_ini_file("test.ini"); $conn =new mysqli($ini["servername"],$ini["username"],$ini["password"],$ini["dbname"]) or die("连接失败<br/>"); //操作数据库 $result=$conn->query("select * from cartoon;"); //输出数据 while($row=$result->fetch_assoc()){ print_r($row); echo "<br/>"; } //关闭数据库 $conn->close(); ?> test.ini [mysql...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL数据库在高并发下的优化方案
- Red5直播服务器,属于Java语言的直播服务器