首页 微博热点正文

帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪天气

文末有网上搜集的最新的面试标题回答视频,重视走一走!

鹅厂校招有一道算法题,用你了解的言语超级红包神仙群张星星完成单链表的回转,其实回转相对其他单链表标题,仍是略微费事点,有必定的难度,这儿计划用java来完成一下。

首要画图协助了解详细要做什么,假设有个链表 存储了数据1,2,3 ,他要求通过回转之后,输出 3,2,1,如下图所示

单链表回转

详细思路

1.首要界说一个节点,Node 史国良害了毕福剑newHeadNode = new Node();简略起见,Node类 只界说教我国文的王先生2个特点,int data;和 Node nextNode;

2.遍历本来的链表,每遍历一个节点,把该节点放在新链表的最前面

3.本来链表的headNode.next=newHeadNode.next,即原节点的next特点指向前一个节点。

详细代码完成

界说节点:

public class Node {
public int data;
Node nextNode;
public Node(int data) {
this.data = data;
}
}

链表回转的办法

pub喜耕田的故事第三部lic static void revers那书总不结束etList(Node head) {
//假如当时链表为空,或许只要一个节点,无需回转,直接回来
if(head== null || head.nextNode == null) {
return ;
}
//界说一个辅佐的指针(变量绝色盲技师),协助咱们遍历本来的链表
Node cur = head.伊图里河气候预报nextNode;
Node nextNode = null;// 指向当时节点[cur]的下一个锁部叶风节点
Node reverseHead = new Node(0);
//遍历钱佰倍本来的链表,每遍历一个节点,就将其取出,并放在新的链表reverseHead 的最前端
while(cur != null) {
nextNode = cur.nextNode;//先暂时保存当时节点的下一个节点,由于后边需求运用
cu帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪气候r.nextNode = reverseHead.nextNode;//将cur的下一个节点指向新的链表的最前端
reverseHea帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪气候d.nextNode = cur; //将cur 连接到新的链表上
cur = nextNode;//让cur后移
}
//将he帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪气候ad.nextNode 指向 reverseHead.nextNode , 完成单链表的回转
head.nextNode = reverseHead.nextNode;
}

接着界说链表目标NodeList,仅仅演示算法项羽帐下五大将,全部从简,所以包括addNode办法:用于添加节点。list办法:用于打印链表的值。

public class Node咪咪头List {
// 先初始化一个头节点, 头节点不要动, 不寄存详细的数据
private Node head = new Node(0);
镌组词// 回来头节点
public Node getHead() {
return head;帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪气候
}
/**
* 添加节点
*
* @param帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪气候 node
*/
public void addNode(Node node) {
// 由于head节点不能动,因而咱们需求一个辅佐遍历 temp
Node temp = head;
// 遍历链表,找到最终
while (true) {
// 找到链表的最终
if (temp.nextNode == null) {//
break;
}
// 如蓝男色果没有找到最终, 将将temp后金博集团董事长王金来移
temp = temp.nextNode;
}
// 当退出while循环时,temp就指向了链表的最终
// 将最终这个节点的next 指向 新的节点
temp.nextNode = node;
}
我愿做你最终一个情人/**
* 显现链表
*/
// 显现链表[遍历]
public void粗长 list() {
// 判别链表是否为空
if (head.nextNode == null) {
System.out.println("链表为空");
return博壹吧论坛白菜大全;
}
// 由于头节点,不能动帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪气候,因而咱们需求一个辅佐变量来遍历
Node temp = head.nextNode;
while (true) {
// 判别是否到链表最终
if (temp == null) {
break;
}
// 输出节点的信息
System.out.pr林贝欣intln(temp.data);
// 忿忿将temp后移, 必定当心
temp = 帕拉丁,腾讯的一道单链表算法题,证明你的数据结构有没有还给教师,玉溪气候temp.nextNode;
}
}
}

最终演示测验成果

链表回转

读者福利

共享更多的面试视频材料,如有需求,请重视私信免费送

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。