我正在尝试编写函数以递归方式返回链表的最后一个节点,而无需声明任何局部变量。这是正确的吗?
ListNode* lastPtr(ListNode* list){
If(list = NULL)
Return NULL;
Else
List = lastPtr(list->next);
If(list->next = NULL)
Return list;
}
语言是c++
我正在尝试编写函数以递归方式返回链表的最后一个节点,而无需声明任何局部变量。这是正确的吗?
ListNode* lastPtr(ListNode* list){
If(list = NULL)
Return NULL;
Else
List = lastPtr(list->next);
If(list->next = NULL)
Return list;
}
语言是c++
ListNode *lastPtr(ListNode* list) {
return (list && list->next) ? lastPtr(list->next) : list;
}
C++ 中的等号与 C 中一样,而 Java 中的等号是==
而不是=
尝试更正您的代码。
ListNode * lastNode(ListNode *list)
{
if (list!=NULL)
{
if (list->next==NULL)
return list;
else return lastNode(list->next);
}
else return NULL;
}