反转链表
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null){ // 判断头节点是否为空
return null;
}
ListNode reverseListHead = null; // 设置反转链表的头节点
ListNode temp = null;
ListNode pre = null;
ListNode current = head; // 当前节点
while(current!=null){
temp = current.next; // temp等于当前节点的下一个节点
current.next = pre; // 当前节点的下一个节点先赋值为空
if(temp == null){ // 当当前节点的下一个节点为空时 就说明当前节点是未反转链表的尾节点
reverseListHead = current; // 把当前节点赋值给反转链表的头节点
}
pre = current; // 把当前节点赋值给pre 这样当下一次循环的时候,当前节点的下一个节点就变为了当前节点 就相当于反转了
current = temp; // 这里不能写为current=current.next 因为current.next已经被修改了
}
return reverseListHead;
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。