Java实现反转带头结点的单链表,并输出结果的过程主要包括以下步骤:
1. 创建带头结点的单链表
首先,我们需要创建一个带头结点的单链表,其中头结点不存储任何数据,只用于表示链表的头部。代码如下:
class ListNode {
int val;
ListNode next;
public ListNode(int val) {
this.val = val;
}
}
public class LinkedList {
private ListNode head;
public LinkedList() {
head = new ListNode(0);
}
public void addNode(int val) {
ListNode newNode = new ListNode(val);
ListNode cur = head;
while(cur.next != null) {
cur = cur.next;
}
cur.next = newNode;
}
}
2. 反转单链表
接下来,我们需要实现反转单链表的功能。反转单链表的基本思路是,从头结点开始,依次将每个节点的指针指向它的上一个结点,直到遍历到最后一个节点。
示例代码如下:
public void reverseList() {
ListNode pre = null;
ListNode cur = head.next;
ListNode nxt = null;
while(cur != null) {
nxt = cur.next;
cur.next = pre;
pre = cur;
cur = nxt;
}
head.next = pre;
}
3. 输出反转后的结果
最后,我们需要将反转后的结果输出。代码如下:
public void printList() {
ListNode cur = head.next;
while(cur != null) {
System.out.print(cur.val + " ");
cur = cur.next;
}
System.out.println();
}
4. 示例说明
下面给出两个示例,详细说明了如何使用上述代码实现反转带头结点的单链表,并输出结果。
示例1:
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.addNode(4);
list.addNode(5);
System.out.println("反转前的结果:");
list.printList();
list.reverseList();
System.out.println("反转后的结果:");
list.printList();
}
输出结果为:
反转前的结果:
1 2 3 4 5
反转后的结果:
5 4 3 2 1
示例2:
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addNode(0);
list.addNode(1);
System.out.println("反转前的结果:");
list.printList();
list.reverseList();
System.out.println("反转后的结果:");
list.printList();
}
输出结果为:
反转前的结果:
1 2
反转后的结果:
2 1
以上就是Java实现反转带头结点的单链表,并输出结果的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 反转带头结点的单链表并显示输出的实现过程 - Python技术站