java单链表节点翻转_Java实现单链表反转操作

单链表是一种常见的数据结构,由多个结点连接而成,每一个结点后面都会跟一个指针,指向下一个结点的内存地址。所以,每一部分就是有一个数据域和一个指针域构成

编写思路:

所谓的单链表反转就是将链表的指针方向改变。但是,由于单链表没有指向前一个结点的指针,所以我们定义一个指向前一个结点的指针pre,用于存储每一个节点的前一个结点。接下来还需要定义一个保存当前结点的指针cur,以及下一个节点的next。定义好之后,遍历单链表,将当前结点的指针指向前一个结点,之后定义三个指针向后移动,直至遍历到最后一个结点为止。

Java代码如下:

public class Node {

private Object data;//数据域

private Node next;//指针域

public Node(Object data){

this.data = data;

}

public Node(Object data,Node next){

this.data = data;

this.next = next;

}

public Object getData() {

return data;

}

public void setData(Object data) {

this.data = data;

}

public Node getNext() {

return next;

}

public void setNext(Node next) {

this.next = next;

}

}

public static Node reverseListNode(Node head){

//单链表为空或只有一个节点,直接返回原单链表

if (head == null || head.getNext() == null){

return head;

}

//前一个节点指针

Node preNode = null;

//当前节点指针

Node curNode = head;

//下一个节点指针

Node nextNode = null;

while (curNode != null){

nextNode = curNode.getNext();//nextNode 指向下一个节点

curNode.setNext(preNode);//将当前节点next域指向前一个节点

preNode = curNode;//preNode 指针向后移动

curNode = nextNode;//curNode指针向后移动

}

return preNode;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值