public class NodeTest {
/** 得到Node,两个元素,一个为值,一个为指向下个值的指针。 */
static private class Node {
public int data;
public Node nextNode;
}
/**得到链表的总数,正向计数得到总数-k*/
private static int findNode(Node headNode, int k) {
int count = 0;
Node node = headNode;
while (node.nextNode != null) {
count++;
node = node.nextNode;
}
if (k >= count) {
return 0;
}
node = headNode;
for (int i = 0, t = count - k; i <= t; i++) {
if (i == t) {
System.out.println(node.data);
return 1;
} else {
node = node.nextNode;
}
}
return 0;
}
/**取得两个指针,一个计数到k,另一个开始,第一个结束时,第2个取得。*/
private static int findNodeOther(Node headNode, int k) {
Node node1 = headNode;
Node node2 = headNode;
for (int i = 0; i < k && node1.nextNode != null; i++) {
node1 = node1.nextNode;
}
if (node1.nextNode == null) {
return 0;
}
while (node1.nextNode != null) {
node1 = node1.nextNode;
node2 = node2.nextNode;
}
System.out.println(node2.data);
return 1;
}
/** 测试用 */
public static void main(String[] args) {
Node headNode = new Node();
Node node = headNode;
/** 生成node链表 */
for (int i = 0; i < 120; i++) {
node.nextNode = new Node();
node.nextNode.data = i * 4;
node = node.nextNode;
}
node.nextNode = null;
System.out.println(findNode(headNode, 120));
System.out.println(findNodeOther(headNode, 120));
}
}
分享到:
相关推荐
面试题 02.07. 链表相交原题链接:面试题 02.07. 链表相交解法一:首尾相接法解题思路将这两个链表首尾相连,然后检测这个链表是否存在环,如果存在,则两
数据结构,链表所有综合面试题型汇总,有大神漏缺的给我留言
java基础面试题两个链表的第一个公共节点本资源系百度网盘分享链接
面试题 02.05. 链表求和标签:递归、链表、数学难度:中等题目大意给定两个非空的链表 l1 和 l2,表示两个非负整数,每位数字都是按照逆序的方式存储的,每
面试题总结:数组和链表的区别 数组和链表.pdf
java基础面试题反转链表本资源系百度网盘分享地址
算法大全-面试题-链表-栈-二叉树-数据结构
题一、给定单链表,检测是否有环。题二、 给定两个单链表(head1, head2),检测两个链表是否有交点,如果有返回第一个交点。等面试题。
C语言链表类面试题.docx struct node { int data; struct node* next; }; 创建单链表的程序为: struct node* create(unsigned int n) { //创建长度为n的单链表 assert(n > 0); node* head; head = new ...
js代码-面试题9:链表
C语言链表相关的面试题在软件开发领域的面试中是非常常见的,这是因为链表作为一种基本的数据结构,对于理解数据结构、算法以及内存管理等方面有着重要的作用。以下是一些关于C语言链表的面试题及其详细解释。 1. ...
java基础面试题复杂链表的复制本资源系百度网盘分享地址
微软面试题,输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。适合新手入门结构清晰易懂
java基础面试题删除链表中重复的节点本资源系百度网盘分享地址
这个工程里面记录了比较全面的链表的面试题,希望可以帮助需要的同学.
换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例 1:输出:Reference of the nod
面试题24. 反转链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:限制:0 节点个数 递归双指针ListN