java代码事项翻转链表
时间: 2023-09-10 22:10:18 浏览: 97
当你说翻转链表,我理解为将链表的指针方向颠倒,例如将链表1->2->3->4->5翻转为5->4->3->2->1。以下是一个使用Java代码实现链表翻转的示例:
```java
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
public class ReverseLinkedList {
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;
}
public static void main(String[] args) {
// 创建链表 1->2->3->4->5
ListNode head = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);
ListNode node4 = new ListNode(4);
ListNode node5 = new ListNode(5);
head.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
ReverseLinkedList solution = new ReverseLinkedList();
ListNode reversedHead = solution.reverseList(head);
// 输出翻转后的链表
while (reversedHead != null) {
System.out.print(reversedHead.val + " ");
reversedHead = reversedHead.next;
}
}
}
```
这段代码使用迭代的方式翻转链表。我们使用三个指针`prev`,`curr`,`nextTemp`来进行操作,每次迭代将当前节点的`next`指针指向前一个节点,然后更新三个指针的位置。最后返回翻转后的链表头节点。
以上是一个简单的链表翻转的示例,希望能对你有所帮助。如果你有其他问题,请随时提问!
阅读全文