文档章节

输入一个链表,反转链表后,输出链表的所有元素。

4112821992
 4112821992
发布于 2017/05/03 23:06
字数 416
阅读 2
收藏 0
点赞 0
评论 0
function ReverseList(pHead)
{
    // write code here
    if(pHead==null)
        return null;
    //head为当前节点,如果当前节点为空的话,那就什么也不做,直接返回null;
    var pre = null;
    var next = null;
    //当前节点是head,pre为当前节点的前一节点,next为当前节点的下一节点
    //需要pre和next的目的是让当前节点从pre->head->next1->next2变成pre<-head next1->next2
    //即pre让节点可以反转所指方向,但反转之后如果不用next节点保存next1节点的话,此单链表就此断开了
    //所以需要用到pre和next两个节点
    //1->2->3->4->5
    //1<-2<-3 4->5
    while(pHead!=null){
        //做循环,如果当前节点不为空的话,始终执行此循环,此循环的目的就是让当前节点从指向next到指向pre
        //如此就可以做到反转链表的效果
        //先用next保存head的下一个节点的信息,保证单链表不会因为失去head节点的原next节点而就此断裂
        next = pHead.next;
        //保存完next,就可以让head从指向next变成指向pre了,代码如下
        pHead.next = pre;
        //head指向pre后,就继续依次反转下一个节点
        //让pre,head,next依次向后移动一个节点,继续下一次的指针反转
        pre = pHead;
        pHead = next;
    }
    //如果head为null的时候,pre就为最后一个节点了,但是链表已经反转完毕,pre就是反转后链表的第一个节点
    //直接输出pre就是我们想要得到的反转后的链表
    return pre;
}

© 著作权归作者所有

共有 人打赏支持
4112821992
粉丝 2
博文 40
码字总数 28256
作品 0
数据结构基础(9) --单链表的设计与实现(2)之高级操作

链表的链接: 将第二条链表的所有内容链接到第一条链表之后, 其完整实现代码与解析如下: //链表的链接template void MyList::concatenate(const MyList &list){ } 链表的反转: 基本思想: 遍历...

翡青 ⋅ 2015/01/05 ⋅ 0

题目1518:反转链表

输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数。 输入的第二行包含n个整数t(0<=t<=1000000):代表链...

哭哭吓唬你 ⋅ 2014/04/03 ⋅ 0

数据结构之链表与数组(3):单向链表上的简单操作

原文出处:写代码的李纳 4 反转单向链表(非递归实现) 思路: 图1 非递归反转链表 如图1所示,假设已经反转了前面的若干节点,且前一段链表的头节点指针为pre,则现在要做的事情是首先保存当...

写代码的李纳 ⋅ 2015/11/11 ⋅ 0

编程题——11~20

十一、数值的整数次方 实现函数double Power( double base, int exponent ),求base的exponent。不使用哭函数,同时 不需要考虑大数问题。 十二、打印1到最大的n位数 输入数字n,按顺序打印出...

thanatos_y ⋅ 2016/07/21 ⋅ 0

单链表中k个结点一组进行反转

原题   Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.   If the number of nodes is not a multiple of k then left-out nodes......

一贱书生 ⋅ 2016/12/13 ⋅ 0

算法知识梳理(9) - 链表算法第一部分

面试算法代码知识梳理系列 算法知识梳理(1) - 排序算法 算法知识梳理(2) - 字符串算法第一部分 算法知识梳理(3) - 字符串算法第二部分 算法知识梳理(4) - 数组第一部分 算法知识梳理(5) - 数...

泽毛 ⋅ 2017/12/17 ⋅ 0

玩转算法面试:(五)LeetCode链表类问题

在链表中穿针引线 链表和数组都是线性结构,但是链表和数组的不同在于数组可以随机的对于数据进行访问。给出索引。可以以O(1)的时间复杂度迅速访问到该元素。 链表只能从头指针开始。 next指...

天涯明月笙 ⋅ 2017/09/22 ⋅ 0

Redis源码分析(adlist)

源码版本: 源码位置: adlist.h : 数据结构定义。 adlist.c:函数功能实现。 一、adlist简介 Redis中的链表叫(A generic doubly linked list implementation 一个通用的双端链表实现),和普...

yangbodong22011 ⋅ 2017/11/08 ⋅ 0

剑指Offer学习总结-从尾到头打印链表

剑指Offer学习总结-从尾到头打印链表 本系列为剑指Offer学习总结,主要是代码案例的分析和实现: 书籍链接:http://product.dangdang.com/24242724.html 原作者博客:http://zhedahht.blog....

wwlcsdn000 ⋅ 01/16 ⋅ 0

【九度OJ1505】|【剑指offer37】两个链表的第一个公共结点

题目描述: 输入两个链表,找出它们的第一个公共结点。 输入: 输入可能包含多个测试样例。 对于每个测试案例,输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的两个链表的元素的个...

aqia358 ⋅ 2014/03/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 14分钟前 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部