头插法实现链表的反转
定义一个新的root节点作为新链表的头,然后定义一个next记录当前节点的next域,然后遍历链表,next记录head的下一节点,头节点指向root的next节点,root的next节点执相头节点,然后再把头节点后移。
初始状态
一次操作

public class Demo{
class Node{
int data;
Node next;
}
public Node reverse(Node head){
Node root=new Node();
// 逻辑头结点点的下一个结点为空
root.next=null;
// 用于记录要处理的下一个结点
Node next=null;
while(head!=null){
// 记录要处理的下一个结点 1 2 3 4 5
next=head.next;
// 当前结点的下一个结点指向逻辑头结点的下一个结点
head.next=root.next;
// 逻辑头结点的下一个结点指向当前处理的结点
root.next=head;
// 上面操作完成了一个结点的头插
head=next;
}
return root.next;
}
}
本文介绍了一种使用头插法实现链表反转的方法。通过创建一个逻辑头结点,遍历原链表并将每个节点插入到新链表的头部,从而实现链表的反转。该方法简单高效,适合于链表数据结构的学习与实践。
172万+

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



