反转链表(算法)
1 public ListNode reLinked(ListNode head){ 2 ListNode currentHead = head;//当前节点 3 ListNode newHead = null;//当前节点前一节点 4 if(currentHead==null || currentHead.next==null){ 5 return currentHead; 6 } 7 while(currentHead!=null){ 8 ListNode nextNode = currentHead.next;//当前节点后一节点 9 currentHead.next = newHead; 10 newHead = currentHead; 11 currentHead = nextNode; 12 } 13 return newHead; 14 }
代码分析
反转链表的关键在于给定两个指针(当前指针,当前指针上一个指针)
8行:定义一个节点临时存储当前节点的后一节点
9行:将当前节点的前一节点赋给当前节点(反转)
10行:当前节点前一节点前移到当前节点
11行:当前节点后移到下一节点(进行下一轮反转)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!