ローカル変数を宣言せずに、リンクされたリストの最後のノードを再帰的に返す関数を作成しようとしています。これは正しいですか?
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;
}