public class LinkReverse2 {
public static void main(String[] args) {
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
Node node5 = new Node(5);
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
Node tmp = node1;
while(tmp != null){
System.out.print(tmp.val+">");
tmp = tmp.next;
}
System.out.println();
Node head = reverse(node1);//反转
while(head != null){
System.out.print(head.val+">");
head = head.next;
}
}
public static Node reverse(Node head){
Node cur = head;
Node post = head.next;
head.next = null;
while(post != null){
Node tmp = post;
post = post.next;
tmp.next = cur;
cur = tmp;
}
return cur;
}
static class Node{
int val;
Node next;
Node(int val){
this.val = val;
this.next = null;
}
}
}
//执行结果:
//反转前:1 2 3 4
//反转后:4 3 2 1Java实现的单链表反转方法(1)
最新推荐文章于 2025-04-20 16:49:26 发布
本文介绍了一种简单的链表反转算法,并通过Java代码实现了该算法。首先创建了一个带有5个节点的链表,然后展示了如何遍历并打印链表元素。接着通过一个reverse方法实现了链表的反转,再次遍历并打印反转后的链表。该算法适用于初学者理解链表的基本操作。
&spm=1001.2101.3001.5002&articleId=50880815&d=1&t=3&u=4800741aead54bcb8d8d1a92fe38c68f)
4408

被折叠的 条评论
为什么被折叠?



