【链表面试题:腾讯】反转链表
前言★ 这里是小冷的博客✓ 优质技术好文见专栏个人公众号,分享一些技术上的文章,以及遇到的坑当前系列:数据结构系列源代码 git 仓库 ‘数据结构代码地址 代码Git 仓库地址反转链表思路* 1.先定义一个节点 reverseHead = new HeroNode();* 2.从头遍历原来的链表,每次遍历一个节点就将其取出并且放到信的链表的最前端,* 3.原来的链表head.next = reve
·
前言
★ 这里是小冷的博客
✓ 优质技术好文见专栏
个人公众号,分享一些技术上的文章,以及遇到的坑
当前系列:数据结构系列
源代码 git 仓库 ‘
数据结构代码地址 代码Git 仓库地址
反转链表
思路
* 1.先定义一个节点 reverseHead = new HeroNode();
* 2.从头遍历原来的链表,每次遍历一个节点就将其取出并且放到信的链表的最前端,
* 3.原来的链表head.next = reverseHead.Next
思路执行流程图
代码
/**
* @author 冷环渊 Doomwatcher
* @context: 腾讯面试题 反转链表
* 思路:
* 1.先定义一个节点 reverseHead = new HeroNode();
* 2.从头遍历原来的链表,每次遍历一个节点就将其取出并且放到信的链表的最前端,
* 3.原来的链表head.next = reverseHead.Next
* @date: 2021/12/18 15:38
* @param head
* @return: void
*/
public static void reverseList(HeroNode head) {
if (head.next == null || head.next.next == null) {
return;
}
//需要新的一个空的头
HeroNode reverseHead = new HeroNode(0, "", "");
// 获得第一个有效的节点
HeroNode cur = head.next;
//指向[cur]的下一个的节点
HeroNode next = null;
while (cur != null) {
//保存当前的节点的下一个位置 有用
next = cur.next;
// 将cur的下一个指向 新的链表的最前端
cur.next = reverseHead.next;
//将新链表的最前端为cur
reverseHead.next = cur;
//cur 继续向后遍历
cur = next;
}
head.next = reverseHead.next;
}
输出结果
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献4条内容
所有评论(0)