234.回文链表
初始化数组:创建一个足够大的数组来存储链表节点的值。 遍历链表:从链表的头节点开始,逐个将节点的值存入数组。 双指针比较:设置两个指针,一个从数组开头,另一个从末尾,向中间移动,比较对应位置的值。 返回结果:若所有对应值相等,返回true;否则,返回false。
发布日期:2025-06-19 06:48:37
浏览次数:4
分类:精选文章
本文共 775 字,大约阅读时间需要 2 分钟。
判断一个单链表是否为回文链表的方法是,将链表中的所有节点值存储到一个数组中,然后从数组的两端同时向中间移动,逐步比较对应节点的值是否相等。如果全部相等,则为回文链表。
步骤如下:
代码示例:
bool isPalindrome(struct ListNode* head) { int n = 0; struct ListNode* current = head; // 计算链表长度 while (current != NULL) { n++; current = current->next; } int arr[n]; current = head; for (int i = 0; i < n; i++) { arr[i] = current->val; current = current->next; } int left = 0, right = n - 1; while (left < right) { if (arr[left] != arr[right]) { return false; } left++; right--; } return true;} 注意事项:该方法假设链表不为空。对于空链表,通常返回true。对于单节点链表,返回true。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2026年06月10日 09时11分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!