说实话这个单链表的反转我至少写了4次,每次都有新的体会,普通人学数据结构真就得记下来.
我的思路就是,有两个注意点需要实现:
① 如何遍历的实现每个节点
② 如何把遍历到的节点插入进去
核心代码
public HerNode revers(Link link){
// 需要两根指针
temp=head.next; // 指向头节点的下一个
next=temp.next; // 防止后面的节点断裂
while(temp!=null){ // 判断当前节点是否为空,为空是不用进行反转的
// 我们首先需要把temp指向 新节点的下一个
temp.next=newhead.next; //第一次的时候newhead.next=null
newhead.next=temp; // 再让newhead.next 指向temp
// 再让两个指针向后移动
temp=next;
// 为了防止temp 是空的 需要判断一下
if(temp!=null){
next=temp.next;
}
}
}