急呀(100分)!!一个腾讯的笔试题!关于一个Node(结点)的问题
今天到面试,遇到个这样的题,凭记忆来描述呀。
有两个类Node与NodeList
public class NodeList{
public Node curNode;
}
public class Node{
public Data data;//存取不同node类型的数据
public Node NextNode;//下一个结点
}
要求在NodeList实现
public Node findNode(Data data)查找当前结点。
不好意思,有点描述不清楚,我的记忆有限呀!
------解决方案--------------------
写一个链表?去看看责任链和LinkedList类。会对你有很大帮助。
------解决方案--------------------
就是一个链表,看看LinkedList差不多就可以完事了!最简单的就是遍历一下链表就OK了!
------解决方案--------------------
你写的类不完整,我用伪代码给出解决方法:
public node findNode(Data data){
while(node->next!=null){
node = node -> next;
if(node->data == data){
return node;
}
}
------解决方案--------------------
这道题要用到递归运算。
public node findNode(Data data){
return doFind(currenNode,data);
}
public node doFind(Node node,Data data){
if(node.getData==data){return node;}//找到data相等的node,将其返回。
else if(node.getNextnode==null){return null;}//循环到最后一个node,还没找到,返回null
else{reutrn doFind(Node node,Data data);} //递归运算查找下一个node;
}