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

相关文章

  • cglib与jdk代理的区别

    JDK 动态代理: 只支持接口代理。它通过反射机制生成一个实现了指定接口的代理类。 代理对象只能调用接口中定义的方法。 CGLib 动态代理: 通过继承方式生成代理类。它可以代理没有实现接口的类。 代理对象可以调用类中的所有方法(除了final方法)。

    NEW个对象 2025-01-18

  • 面向对象三大特性 :封装、继承、多态

    面向对象三大特性 :

    NEW个对象 2025-01-10

  • sleep与wait的区别

    1、sleep()方法属于Thread类的静态方法,wait()方法属于Object类的实例方法

    NEW个对象 2025-01-10

推荐文章