题目描述
输入一个链表,反转链表后,输出新链表的表头。
需要定义3个指针,分别指向节点、节点的前一个节点和节点的后一个节点。
/**
* @author yuan
* @date 2019/2/12
* @description
*/
public class 反转链表 {
static class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public ListNode ReverseList(ListNode head) {
if (head == null) {
return null;
}
ListNode revHead = null;
ListNode node = head;
ListNode pre = null;
while (node != null) {
ListNode next = node.next;
if (next == null) {
revHead = node;
}
node.next = pre;
pre = node;
node = next;
}
return revHead;
}
}
本文详细解析了链表反转的算法实现,通过定义三个指针分别指向当前节点、前一个节点和下一个节点,实现了链表的高效反转。适用于数据结构与算法初学者,帮助理解链表操作的核心概念。
445

被折叠的 条评论
为什么被折叠?



