判断一个链表是否为回文链表,说出你的思路并手写代码
发布于 2020-01-30 17:34:08
关注者
0
被浏览
440
1 个回答
-
参考回答:
思路:使用栈存储链表前半部分,然后一个个出栈,与后半部分元素比较,如果链表长度未知,可以使用快慢指针的方法,将慢指针指向的元素入栈,然后如果快指针指向了链表尾部,此时慢指针指向了链表中间
bool is_palindromic_list2(mylist *a_list) { if(a_list == nullptr) { return false; } stack<int>list_value; mylist * fast =a_list; mylist *slow =a_list; while(fast->next!=nullptr && fast->next->next!=nullptr) { list_value.push(slow->next->value); slow = slow->next; fast = fast->next->next; } cout<<"middle elem value is "<<slow->next->value<<endl; if(fast->next != nullptr) { cout<<"the list has odd num of node"<<endl; slow =slow->next; } int cur_value; while(!list_value.empty()) { cur_value = list_value.top(); cout<<"stack top value is"<<cur_value<<endl; cout<<"list value is "<<slow->next->value<<endl; if(cur_value != slow->next->value) { return false; } list_value.pop(); slow = slow->next; } return true; }
推荐阅读
-
怎么判断一个数是二的倍数,怎么求一个数中有几个1,说一下你的思路并手写代码?
2020-01-05 关注 0 浏览1302 1答案
-
判断一个链表是否有环
2021-10-21 关注 0 浏览205 1答案
-
手写代码:反转链表
2020-01-30 关注 0 浏览371 1答案
-
手写代码:怎么判断链表有环,怎么找环节点?
2020-01-27 关注 0 浏览608 1答案
-
请问如何判断一个链表是否有环?
2020-01-27 关注 0 浏览479 1答案
-
判断一个单链表中是否有环
2021-10-21 关注 0 浏览101 1答案
-
现在有一个单向链表,谈一谈,如何判断链表中是否出现了环
2020-01-28 关注 0 浏览431 1答案
-
请你手写代码,如何合并两个有序链表
2020-01-30 关注 0 浏览413 1答案
-
手写代码:反转链表 (Java 版)
2020-01-31 关注 0 浏览735 1答案
-
如下代码是实现反转链表的一部分代码:反转链表为:输入一个链表的头节点,反转...
2022-03-02 关注 0 浏览39 1答案