如何解决我已经制作了这段代码来确定给定的链表是否是回文它在 [1,1,2,1] 的情况下失败
我正在反转(reverse
)链表,如果两者相等,则将其与原始列表进行比较。这是一个回文,否则就不是。
void reverse(ListNode *&N) //reversing the copy of linked list
{
ListNode *one,*two,*three;
one=N;
two=N;
three=NULL;
while(one)
{
one=one->next;
two->next= three;
three=two;
two=one;
}
N=three;
}
bool ispalindrome(ListNode* head)
{
ListNode* rev = head;
ListNode *temp=head;
reverse(rev);
while(temp) //checking if reverse and original are equal
{
if(rev->val!= temp->val)return false;
rev=rev->next;
temp=temp->next;
}
return true;
}
```C++
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。