如何实现链表的逆序?
下面介绍了两种方法:1.就地逆序法 2.插入法
单链表数据结构
/**
* @program: 算法与数据结构
* @description: 单链表数据结构
* @author: 粉刷匠
* @create: 2019-04-11 20:02
*/
public class LNode {
int data; //数据域
LNode next; //下一个结点的引用
}
方法一:就地逆序
/**
* @program: 算法与数据结构
* @description: 就地逆序实现 :时间复杂度为O(N)、空间复杂度为O(1)
* 思路:修改当前结点的指针域的指向,让其指向它的前驱结点。
* 如何实现链表的逆序?
* 1. 给定一个带头结点的单链表,请将其逆序。
* 原来为: head->1->2->3->4->5->6->7->8->9
* 逆序后: head->9->8->7->6->5->4->3->2->1
* @author: 粉刷匠
* @create: 2019-04-11 19:39
*/
public class Test_01 {
/* 方法功能:对单链表进行逆序输出参数:head:链表头结点 */
public void Reverse(LNode head){
//判断链表是否为空
if(head=