用递归返回链表尾节点的方法
一个单向链表
要求编写一个方法,通过导入链表中任意一个节点,就能返回这个链表的尾节点
以下是我的方法:
Node getEnd(Node n){
if(n.getNext()!=null)
{getEnd(n.getNext());}
return n;
}
(Node是我定义的节点类,getNext方法是一个返回某节点的后继节点的方法,返回类型也是Node,具体就不写了)
以上方法是不能编译通过的,因为如果后继存在,那么大括号里的语句不能提供返回值,而方法定义要求返回一个Node类型数据。
而如果为了编译通过而在大括号里添加语句返回某一个Node,那么此方法在递归调用找到链表尾巴前会不断返回好多无用的Node,造成显示结果混乱。
怎样做才能编译通过,而且只返回一个最后节点?
不懂内在的程序流程,抓瞎乱改,加else也不行,有什么办法么。