话不多说,直接上代码,直接码完就完事。
class ListNode{
int value;
ListNode next;
// ListNode的构造函数
public ListNode() {};
public ListNode(int value) {
this.value = value;
}
public ListNode(int value, ListNode next) {
this.value = value;
this.next = next;
}
}
public class Solution {
public static void main(String[] args) {
// 新建链表第一个头节点
ListNode newNode = new ListNode(1);
ListNode head = newNode;
for(int i = 2; i < 6; i++) {
ListNode next = new ListNode(i);
// 从头节点往后插入新的节点
insertNodeToHead(next,head);
head = next;
}
// 打印新建的链表
ListNode currNode = newNode;
while(currNode != null) {
if(currNode.next != null){
System.out.print(currNode.value + "->");
}
else {
System.out.print(currNode.value);
}
currNode = currNode.next;
}
System.out.println();
// 链表反转操作
ListNode taiNode = reverseListNode(newNode);
// 打印反转后的链表
currNode = taiNode;
while(currNode != null) {
if(currNode.next != null){
System.out.print(currNode.value + "->");
}
else {
System.out.print(currNode.value);
}
currNode = currNode.next;
}
}
// 链表反转操作
public static ListNode reverseListNode(ListNode head) {
ListNode pre = null;
ListNode currNode = head;
while(currNode != null) {
ListNode nextNode = currNode.next;
currNode.next = pre;
pre = currNode;
currNode = nextNode;
}
return pre;
}
// 从头节点往后插入新的节点
public static void insertNodeToHead(ListNode node, ListNode head) {
head.next = node;
}
}
赶紧自己在IDE上试试吧。