帮忙么网 > 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
}

相关文章

  • java代码,随机打乱一个数组

    问题1:j不会越界吗? next生成数在【0到i+1】之间。 问题2:代码的具体逻辑 生成一个【0到i+1】的之间的随机数,与【i】进行互换

    NEW个对象 2025-02-21

  • 有哪些数据安全的方案?

    1、锁 2、单线程,比如:redis 3、不共享变量,比如:ThreadLocal 4、原子操作,比如:AtomicInteger 5、不可变模式,比如:一旦创建不能修改,修改就会再次创建一个新的对象,String 6、读写分离,写时复制,比如:CopyOnWriteArrayList

    NEW个对象 2025-02-11

  • 线程和进程的区别?

    线程和进程的区别?

    NEW个对象 2025-01-09

推荐文章