博客
关于我
Java经典面试题之反转一个单链表
阅读量:521 次
发布时间:2019-03-08

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

示例:

输入: 1->2->3->4->5->NULL

输出: 5->4->3->2->1->NULL

先上代码!

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {       public ListNode reverseList(ListNode head) {           ListNode newHead = null;//新的链表的头节点        ListNode prve = null;//当前需要反转的节点的前驱        ListNode val = head;//当前需要反转的节点        ListNode valNext;        while (val != null) {               valNext =val.next;            if (valNext == null) {                newHead = val;            }            val.next = prve;            prve = val;            val = valNext;        }        return newHead;    }}

定义一个头节点,用来最后返回头节点的值;定义prve为需要反转的节点的前驱;定义val为需要反转的节点,要反转一个单链表,则根据下面这张图来反转。

在这里插入图片描述
图片上的cur其实就是代码中的val,当val不等于空的时候,进入循环,先把val.next的值用valNext保存起来,如果valNext的值为空,则已经遍历到单链表的结尾,将val的值赋给头节点;如果不为空,把val.next的值赋给节点前驱Prve,将节点前驱的值赋给节点val;最后更新val的值为valNext。构成一个循环,完成对整个单链表的遍历,最后返回newHead的值。

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

你可能感兴趣的文章
nginx 代理解决跨域
查看>>
Nginx 做负载均衡的几种轮询策略分析
查看>>
Nginx 入门,一篇搞定!
查看>>
Nginx 利用代理转发请求示例
查看>>
Nginx 动静分离与负载均衡的实现
查看>>
Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
查看>>
nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
查看>>
Nginx 反向代理+负载均衡
查看>>
Nginx 反向代理解决跨域问题
查看>>
Nginx 反向代理配置去除前缀
查看>>
nginx 后端获取真实ip
查看>>
Nginx 多端口配置和访问异常问题的排查与优化
查看>>
Nginx 如何代理转发传递真实 ip 地址?
查看>>
Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
Nginx 学习(一):Nginx 下载和启动
查看>>
nginx 常用指令配置总结
查看>>
Nginx 常用配置清单
查看>>
nginx 常用配置记录
查看>>
nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
查看>>