下面是我编写的用于在链表的末尾添加节点的递归函数。谁能说出功能是否正确?
Node insertAtEnd(Node head, int data){
if(head.next == null){
Node temp= new Node(data);
head.next= temp;
return;
}
insertAtEnd(head.next, data);
}
已经有一个名为 Node 的类,其定义如下:
class Node
{
int data;
Node next;
Node(int d) {data = d; next = null; }
}
答案 0 :(得分:2)
您的方法的返回类型为Node
,因此您应该返回新的Node
:
Node insertAtEnd(Node head, int data) {
if (head.next == null) {
Node temp= new Node(data);
head.next= temp;
return temp;
}
return insertAtEnd(head.next, data);
}
或
Node insertAtEnd(Node head, int data) {
if (head.next == null) {
head.next = new Node(data);
return head.next;
}
return insertAtEnd(head.next, data);
}