LeetCode-234. 回文链表【链表,双指针】
2023-09-14 09:01:27 时间
LeetCode-234. 回文链表【链表,双指针】
题目描述:
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
示例 1:
输入:head = [1,2,2,1]
输出:true
示例 2:
输入:head = [1,2]
输出:false
提示:
链表中节点数目在范围[1, 105] 内
0 <= Node.val <= 9
https://leetcode.cn/problems/palindrome-linked-list/description/?orderBy=most_votes
解题思路一:将值复制到数组中后用双指针法
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
bool isPalindrome(ListNode* head) {
vector<int> vals;
while(head!=nullptr){
vals.emplace_back(head->val);
head=head->next;
}
for(int i=0,j=vals.size()-1;i<j;++i,--j)
if(vals[i]!=vals[j]) return false;
return true;
}
};
时间复杂度:O(n)
空间复杂度:O(n)
解题思路二:0
解题思路三:0
相关文章
- Java实现 LeetCode 670 最大交换(暴力)
- Java实现 LeetCode 380 常数时间插入、删除和获取随机元素
- Java实现 LeetCode 109 有序链表转换二叉搜索树
- Java实现 LeetCode 92 反转链表 II
- Java实现 LeetCode 24 两两交换链表中的节点
- (LeetCode 83)Remove Duplicates from Sorted Lists
- 每日一道 LeetCode (1):两数之和
- [LeetCode] H-Index
- 【二叉树】LeetCode 114. 二叉树展开为链表【中等】
- 【数组&双指针】LeetCode 142. 环形链表 II【中等】
- LeetCode(21):合并两个有序链表
- Leetcode.剑指 Offer II 023. 两个链表的第一个重合节点
- LeetCode-206. 反转链表【双指针,递归】
- LeetCode-141. 环形链表【哈希表,快慢指针】
- (链表专题) 725. 分隔链表 ——【Leetcode每日一题】
- (链表专题) 234. 回文链表——【Leetcode每日一题】
- Leetcode 2293. 极大极小游戏(可以.一次过)
- Leetcode 234. 回文链表
- [LeetCode] 114. 二叉树展开为链表 ☆☆☆(深度遍历)
- leetcode 32. 最长有效括号 js实现
- 【Leetcode刷题Python】25.K 个一组翻转链表
- 【Leetcode刷题Python】450. 删除二叉搜索树中的节点
- LeetCode 92. 反转链表 II
- 【LeetCode】24. 两两交换链表中的节点
- 【LeetCode】环形链表