【腾讯面试题】单链表反转
【腾讯面试题】单链表反转
- 思路:
- 先定义一个节点
reverseHead= new Node();
- 从头到尾遍历原来的链表,没遍历一个节点,就取出,并放在新的链表
reverseHead
的最前端 - 原来的链表的
head.next=reverseHead.next
- 先定义一个节点
- 核心代码
/** * @ author Guo daXia * @ create 2022/11/14 */ public class Reverse { /** * 实现单链表反转 * @param head 传入一个头节点,进行反转 */ public static void reverseList(LinkedNode head){ //先排除一些不可能 if (head.next==null){ return; } //定义一个辅助变量充当指针,遍历原来的链表 LinkedNode c =head.next; LinkedNode next = null; LinkedNode reverseHead = new LinkedNode(0,""); //遍历原来的链表,每遍历一个节点,就将其取出,并放在新的链表reverseHead的最前端,即头插法***** while (c!=null){ next = c.next;//先暂时存当前节点的下一个节点,因为后面需要使用 c.next=reverseHead.next;//当前节点c的下一个指向新1链表的下一个 reverseHead.next=c;//将c连接到新的链表上 c=next;//让c后移 } head.next = reverseHead.next;//最后,将head.next指向reverseHead.next,共同指向同一片堆空间 } }
比任何人都要努力
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)