网站免费搭建,太原谁想做网站,如何破解wordpress主题,重庆建设工程造价信息网站LCR 024. 反转链表
给定单链表的头节点 head #xff0c;请反转链表#xff0c;并返回反转后的链表的头节点。 示例 1#xff1a; 输入#xff1a;head [1,2,3,4,5]
输出#xff1a;[5,4,3,2,1]示例 2#xff1a; 输入#xff1a;head [1,2]
输出#xff1a;[2,1]示…LCR 024. 反转链表
给定单链表的头节点 head 请反转链表并返回反转后的链表的头节点。 示例 1 输入head [1,2,3,4,5]
输出[5,4,3,2,1]示例 2 输入head [1,2]
输出[2,1]示例 3
输入head []
输出[]
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {ListNode pre ;ListNode index head;while(index!null){ListNode temp index.next;index.next pre;pre index;index temp;}return pre;}}
执行过程 初始化 pre 初始化为 null因为反转后的头节点的 next 应该为 null。index 初始化为传入的 head即当前节点从头节点开始。 循环过程 在 while 循环中首先保存 index 的下一个节点到 temp 中这是因为在修改 index.next 后会失去对后续节点的引用。将 index.next 指向 pre实现反转操作。更新 pre 为当前 index即前一个节点更新为当前节点为下一次循环做准备。将 index 移动到 temp继续下一次循环。 循环结束 当 index 为 null 时说明已经遍历完原链表此时 pre 指向的节点即为反转后的头节点。 返回值 返回 pre即为反转后的链表头节点。