单链表反转--Java实现
单链表的反转是一个在面试中比较常见的问题。由于其实现相对简单,甚至有些现场面的面试官要求手写单链表反转的代码。
如何实现一个单链表的反转呢?这里以一个实例来简单介绍一下实现思路:
假如有一个三个元素的单链表,每次把第二个元素提到最前面来。比如下面是第一次交换,我们先让头结点的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:单链表反转java代码解释
来源于尚硅谷的老师代码,只因其中有几行代码自己课上没听明白,课后自己整理了一下 首先完整代码如下: //将单链表反转 public static void reversetList(HeroNode ...
- Java单链表反转 详细过程
Java单链表反转 Java实现单链表翻转 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51119499 (一) ...
- Java实现单链表反转操作
单链表是一种常见的数据结构,由一个个节点通过指针方式连接而成,每个节点由两部分组成:一是数据域,用于存储节点数据.二是指针域,用于存储下一个节点的地址.在Java中定义如下: public class ...
- 剑指offter Java单链表反转
应上篇文章说的做一篇单链表的反转问题.关于怎么创建单链表问题我已经写过了一篇:https://blog.csdn.net/nisemono_ct/article/details/95514797 单链 ...
- java数据结构 - 单链表(腾讯面试题实现单链表反转)
直接上实现代码 //单链表的反转public static void reverseList(HeroNode head){//如果当前链表为空,或只有一个节点,无需反转if (head.next = ...
- java 反转jia链表_Java实现单链表反转
本文主要介绍单链表反转的两种方法,记录如下: 1. package com.leetcode; public class ListReverse { public static void main(S ...
- bat面试题 python 单链表反转排序
单链表反转python实现 单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表
- Interview:算法岗位面试—10.30上午上海某信息公司(偏图算法)技术面试之单链表反转、给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xcepti
ML岗位面试:10.30上午上海某信息公司(偏图算法)技术面试之单链表反转.给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xception.推荐算法等 I ...
- 单链表反转的原理和python代码实现
链表是一种基础的数据结构,也是算法学习的重中之重.其中单链表反转是一个经常会被考察到的知识点. 单链表反转是将一个给定顺序的单链表通过算法转为逆序排列,尽管听起来很简单,但要通过算法实现也并不是非常容 ...
- 【编程2】单链表+单链表反转(LeetCode. 206)
文章目录 一.链表 二.单链表 1.基本概念 (1)单链表 (2)头指针--必有元素 (3)头结点--非必需元素 (4)尾结点 2.查找操作 3.插入操作 4.删除操作 三.设计思想-- 时间 < ...
最新文章
- 这个Python知识点,90%初学者没太整明白
- 埃隆·马斯克:比特币拥有着“极为出色”的结构,而纸质货币终将消失
- 定向输出命令_Linux系统管理-输入输出
- MongoDB之python简单交互(三)
- LeetCode 55. 跳跃游戏 中等难度
- 逻辑分析仪上位机DSview的简单触发设置
- 2018明星学术公众号TOP 10重磅发布,PaperWeekly再度入选
- Asp.Net Core之Identity应用(下篇)
- matlab调用自己写的函数时报错: reference to a cleared variable
- 照相馆里的魔术师-数码照片处理大全二
- android 应用模式之mvp
- 数据结构与算法必备的 50 个代码实现。
- RGB888转换为RGB565格式
- 关于URDF中的惯性矩阵描述问题
- 【Racket】安装与入门
- 被电动牙刷改变的人生,他现在是拥有百万粉丝的网红
- 生物信息学_分子数据库(四)其他数据库
- GeneXus3 筛选条件
- 流利说-后端开发工程师
- mysql查询今天的数据