0

我正在尝试编写函数以递归方式返回链表的最后一个节点,而无需声明任何局部变量。这是正确的吗?

ListNode* lastPtr(ListNode* list){
If(list = NULL)
Return NULL;
Else 
List = lastPtr(list->next);
If(list->next = NULL)
Return list;
}

语言是c++

4

2 回答 2

3
ListNode *lastPtr(ListNode* list) {
return (list && list->next) ? lastPtr(list->next) : list;
} 
于 2013-01-27T22:48:30.770 回答
1

C++ 中的等号与 C 中一样,而 Java 中的等号是==而不是=

尝试更正您的代码。

ListNode * lastNode(ListNode *list)
{
    if (list!=NULL)
    {
        if (list->next==NULL)
            return list;
        else return lastNode(list->next);
    }
    else return NULL;
}
于 2013-01-27T22:43:17.767 回答