用Java代码实现反转链表,给你单链表的头节点head,请你反转链表,并返回反转后的链表,head=[1,2,3,4,5],并返回结果
时间: 2024-03-27 20:36:07 浏览: 62
好的,以下是Java代码实现反转链表的方法:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode nextTemp = curr.next;
curr.next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
```
我们首先定义一个 `ListNode` 类,表示单链表的节点,包含一个整数值和指向下一个节点的指针。然后定义 `reverseList` 方法,接收单链表的头节点作为参数,返回反转后的链表的头节点。
在 `reverseList` 方法中,我们使用三个指针来实现链表的反转。`prev` 指向当前节点的前一个节点,`curr` 指向当前节点,`nextTemp` 指向当前节点的下一个节点。我们不断遍历链表,将当前节点的 `next` 指针指向前一个节点,然后将三个指针都向后移动一个节点。最后返回反转后的链表的头节点 `prev`。
对于给定的单链表 `[1,2,3,4,5]`,我们可以按照以下方式调用 `reverseList` 方法来反转链表:
```java
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 newHead = reverseList(head);
System.out.println(newHead.val); // 输出 5
System.out.println(newHead.next.val); // 输出 4
System.out.println(newHead.next.next.val); // 输出 3
System.out.println(newHead.next.next.next.val); // 输出 2
System.out.println(newHead.next.next.next.next.val); // 输出 1
```
输出结果为:
```
5
4
3
2
1
```
可以看到,我们成功地将单链表反转了。
阅读全文