【发布时间】:2020-11-02 11:31:02
【问题描述】:
我试图通过递归地向下到列表中的最后一个节点并将第一个节点与列表中的最后一个节点进行比较来在给定的链表中查找回文。
我的 LinkedList 具有标准节点,其中包含一个 int 值成员和一个指向下一个节点的指针。
我将指向头节点指针的指针作为第一个参数传递,并在每次成功匹配时将其更改为下一个,但我在语法中遇到错误。有人可以解释为什么我会收到此错误吗?
代码sn-p:
bool isPalindromeRecur(Node** left, Node* right){
if(right == nullptr) return true;
bool isP = isPalindromeRecur(left,right->next);
if(!isP) return false;
bool isP1 = (*(left)->val == right->val);
*left = *(left)->next;
return isP1;
}
我在第 5 行和第 6 行遇到错误。
error: request for member 'val' in '* left', which is of pointer type 'Node*' (maybe you meant to use '->' ?)
bool isP1 = (*(left)->val == right->val);
^~~
error: request for member 'next' in '* left', which is of pointer type 'Node*' (maybe you meant to use '->' ?)
*left = *(left)->next;
^~~~
【问题讨论】:
-
bool isP1 = (*(left)->val == right->val);->bool isP1 = (*left)->val == right->val;和*left = *(left)->next;->*left = (*left)->next;
标签: c++ c++11 pointers linked-list singly-linked-list