单链表的反转是一个在面试中比较常见的问题。由于其实现相对简单,甚至有些现场面的面试官要求手写单链表反转的代码。

如何实现一个单链表的反转呢?这里以一个实例来简单介绍一下实现思路:

假如有一个三个元素的单链表,每次把第二个元素提到最前面来。比如下面是第一次交换,我们先让头结点的next域指向结点a2,再让结点a1的next域指向结点a3,最后将结点a2的next域指向结点a1,就完成了第一次交换。

在网上找了一张图,可以参考下:

实现代码如下:

class Node{int val;Node nextNode;public Node(int value) {val = value;}
}
public class Main{public static void main(String[] args){Node head = createList(5);traverse(head);traverse(reverseList(head));}public static Node createList(int length){Node firstNode = new Node(1);Node head = firstNode;Node pNode,tempNode;pNode = firstNode;for (int i = 2; i <= length; i++) {tempNode = new Node(i);pNode.nextNode=tempNode;pNode=tempNode;}return head;}public static Node reverseList(Node head) {Node p = head,q;while(p.nextNode != null){q = p.nextNode;p.nextNode=q.nextNode;q.nextNode=head;head=q;}return head;}public static void traverse(Node head){Node point = head;while (point!=null) {System.out.print(point.val + " ");point=point.nextNode;}System.out.println();}
}

单链表反转--Java实现相关推荐

  1. 数据结构1:单链表反转java代码解释

    来源于尚硅谷的老师代码,只因其中有几行代码自己课上没听明白,课后自己整理了一下 首先完整代码如下: //将单链表反转 public static void reversetList(HeroNode ...

  2. Java单链表反转 详细过程

    Java单链表反转 Java实现单链表翻转     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51119499 (一) ...

  3. Java实现单链表反转操作

    单链表是一种常见的数据结构,由一个个节点通过指针方式连接而成,每个节点由两部分组成:一是数据域,用于存储节点数据.二是指针域,用于存储下一个节点的地址.在Java中定义如下: public class ...

  4. 剑指offter Java单链表反转

    应上篇文章说的做一篇单链表的反转问题.关于怎么创建单链表问题我已经写过了一篇:https://blog.csdn.net/nisemono_ct/article/details/95514797 单链 ...

  5. java数据结构 - 单链表(腾讯面试题实现单链表反转)

    直接上实现代码 //单链表的反转public static void reverseList(HeroNode head){//如果当前链表为空,或只有一个节点,无需反转if (head.next = ...

  6. java 反转jia链表_Java实现单链表反转

    本文主要介绍单链表反转的两种方法,记录如下: 1. package com.leetcode; public class ListReverse { public static void main(S ...

  7. bat面试题 python 单链表反转排序

    单链表反转python实现 单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表

  8. Interview:算法岗位面试—10.30上午上海某信息公司(偏图算法)技术面试之单链表反转、给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xcepti

    ML岗位面试:10.30上午上海某信息公司(偏图算法)技术面试之单链表反转.给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xception.推荐算法等 I ...

  9. 单链表反转的原理和python代码实现

    链表是一种基础的数据结构,也是算法学习的重中之重.其中单链表反转是一个经常会被考察到的知识点. 单链表反转是将一个给定顺序的单链表通过算法转为逆序排列,尽管听起来很简单,但要通过算法实现也并不是非常容 ...

  10. 【编程2】单链表+单链表反转(LeetCode. 206)

    文章目录 一.链表 二.单链表 1.基本概念 (1)单链表 (2)头指针--必有元素 (3)头结点--非必需元素 (4)尾结点 2.查找操作 3.插入操作 4.删除操作 三.设计思想-- 时间 < ...

最新文章

  1. 这个Python知识点,90%初学者没太整明白
  2. 埃隆·马斯克:比特币拥有着“极为出色”的结构,而纸质货币终将消失
  3. 定向输出命令_Linux系统管理-输入输出
  4. MongoDB之python简单交互(三)
  5. LeetCode 55. 跳跃游戏 中等难度
  6. 逻辑分析仪上位机DSview的简单触发设置
  7. 2018明星学术公众号TOP 10重磅发布,PaperWeekly再度入选
  8. Asp.Net Core之Identity应用(下篇)
  9. matlab调用自己写的函数时报错: reference to a cleared variable
  10. 照相馆里的魔术师-数码照片处理大全二
  11. android 应用模式之mvp
  12. 数据结构与算法必备的 50 个代码实现。
  13. RGB888转换为RGB565格式
  14. 关于URDF中的惯性矩阵描述问题
  15. 【Racket】安装与入门
  16. 被电动牙刷改变的人生,他现在是拥有百万粉丝的网红
  17. 生物信息学_分子数据库(四)其他数据库
  18. GeneXus3 筛选条件
  19. 流利说-后端开发工程师
  20. mysql查询今天的数据

热门文章

  1. 命令行Terminal增加proxy开关
  2. 参考文献顺序_科技论文参考文献的著录规则及存在问题
  3. html不用ajax怎么提交,停止HTML中JS AJAX功能提交按钮
  4. git reset/git checkout./撤销操作
  5. 542. 01 矩阵
  6. 242.有效的字母异位词
  7. 编译单元为什么只能有一个public类
  8. ansys大变形开关要不要打开_ANSYS与ABAQUS比较之实例7橡胶垫圈的受压分析
  9. Hadoop 集群 傻瓜式搭建手记 (一) 软件准备
  10. 动手试试Android Studio插件开发