1.单链表反转
反转步骤:从头到尾遍历一遍链表,每遍历一个结点,将其放在新链表的最前端。注意链表为空和只有一个结点的情况。
public static Node reverseNode(Node head){
// 如果链表为空或只有一个节点,无需反转,直接返回原链表表头
if(head == null || head.next == null)
return head;
Node reHead = null;
Node cur = head;
while(cur!=null){
Node reCur = cur; // 用reCur保存住对要处理节点的引用
cur = cur.next; // cur更新到下一个节点
reCur.next = reHead; // 更新要处理节点的next引用
reHead = reCur; // reHead指向要处理节点的前一个节点
}
return reHead;
}
这篇博客详细介绍了如何使用迭代方式实现单链表的反转。首先检查链表是否为空或只有一个节点,这两种情况无需反转。然后通过三个指针reHead、cur和reCur分别记录新链表的头部、当前处理节点和前一个处理节点,依次更新节点的next指针,最终返回新链表的头部节点。
627

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



