java单链表的逆置
时间: 2023-11-04 12:01:09 浏览: 122
在Java中,要实现单链表的逆置,可以根据引用中提供的代码进行操作。代码的思路是通过遍历链表,将每个节点进行头插法插入到一个新的链表中,最后返回新链表的头节点。具体步骤如下:
1. 首先判断链表是否为空,如果为空则直接返回null。
2. 创建两个指针last和cur,分别指向原链表的头节点和头节点的下一个节点。
3. 创建一个临时节点temp,用于保存当前节点cur。
4. 在循环中,将cur节点的next指向last节点,然后更新last节点为cur节点,cur节点为temp节点的下一个节点。
5. 循环直到cur节点为空,即完成了链表的逆置。
6. 最后将last节点的next指向null,返回last节点作为逆置后链表的头节点。
这样就实现了Java单链表的逆置。
相关问题
Java带头节点的单链表逆置
在Java中,带头节点的单链表逆置通常通过迭代或递归的方式实现。这里是一个简单的迭代方法:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode current = head;
while (current != null) {
// 保存当前节点的下一个节点
ListNode nextTemp = current.next;
// 将当前节点的next指向前一个节点
current.next = prev;
// 移动prev和current到下一位
prev = current;
current = nextTemp;
}
// 返回新的头节点,即原链表的尾节点
return prev;
}
```
这个算法的工作原理是每次循环都将当前节点的`next`指向`prev`,然后将`prev`和`current`向后移动一位,直到遍历完整个链表。最后返回`prev`作为新的头节点。
java数据结构之单链表逆置代码
在Java中,单链表逆置的一个常见方法是使用迭代的方式,通过三个指针分别指向当前节点、前一个节点和下一个节点,然后逐步更新它们的位置。以下是基本的代码示例:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public ListNode reverseList(ListNode head) {
ListNode prev = null; // 初始化前驱节点为null
ListNode curr = head; // 当前节点初始化为头节点
// 只要当前节点不为空就继续遍历
while (curr != null) {
ListNode nextTemp = curr.next; // 保存当前节点的下一个节点
curr.next = prev; // 将当前节点的next指向前一个节点
prev = curr; // 移动前驱节点到当前节点
curr = nextTemp; // 移动当前节点到下一个节点
}
return prev; // 返回新的头节点,即原链表的尾部
}
```
这段代码首先创建两个临时变量`prev`和`curr`,然后在循环中不断更新这两个指针,同时将`curr.next`指向`prev`,直到`curr`变为`null`。最后返回`prev`,它指向的就是原链表的反转后的头部。
阅读全文