java链表反转代码怎么写
以下是Java中链表反转的示例代码:
public class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
public class LinkedListReverse {
public static ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode current = head;
ListNode next = null;
while (current != null) {
next = current.next;
current.next = prev;
prev = current;
current = next;
}
return prev;
}
public static void main(String[] args) {
ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);
ListNode reversedHead = reverseList(head);
System.out.print("Reversed List: ");
while (reversedHead != null) {
System.out.print(reversedHead.val + " ");
reversedHead = reversedHead.next;
}
}
}
运行以上代码,将会输出反转后的链表:
Reversed List: 5 4 3 2 1
在反转链表的代码中,我们使用了三个指针prev、current和next。初始时,prev为null,current为头节点head,next为null。在每一次循环中,我们将current的next指针指向prev,然后依次向后移动prev、current和next指针。最终,prev指针将指向反转后的链表头节点,我们将其返回即可。
版权声明
本文仅代表作者观点,不代表米安网络立场。
上一篇:C语言如何倒置输入的数字 下一篇:apache虚拟主机配置的方式有哪些
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。