帮忙么网 > JAVA > 当前页面

链表反转

2025-02-12 NEW个对象

class Solution {
public ListNode reverseList(ListNode head) {
if(head == null){
return head;
}

ListNode pre = null;
ListNode cur = head;

while(cur != null){
ListNode temp = cur.next;
cur.next = pre;
pre = cur;
cur = temp;
}

return pre;
}

//在将来如何快速理解链表反转
//cur指向pre,pre移动到cur的位置,cur移动到next的位置,next移动到next的位置
// pre cur next
//null 1 -> 2 -> 3 -> 4 -> 5 -> null
// pre cur next
//null <- 1 2 -> 3 -> 4 -> 5 -> null
// pre cur next
//null <- 1 <- 2 3 -> 4 -> 5 -> null
// pre cur next 直到cur为null结束为止,返回pre
//null <- 1 <- 2 <- 3 <- 4 <- 5 null
}

相关文章

  • for循环执行流程

    这也是一个笔试题,也是一道即便再复习两年也不会复习到点。

    NEW个对象 2025-01-13

  • CMS与G1的区别?

    1、CMS是老年代回收器,可以配合其它Serial和ParNew收集器一起使用。 2、G1是全局范围的,不需要配合其它垃圾器使用

    NEW个对象 2025-01-09

  • 线程同步与线程安全的区别?

    线程同步是指在多线程环境中,通过某种机制来协调多个线程对共享资源的访问,确保资源的访问顺序是有序和正确的。 线程安全是指多个线程访问同一资源时,不会出现数据错乱等问题;

    NEW个对象 2025-01-10

推荐文章