在网站上做漂浮,从化做网站开发,网站开发用mvc多吗,施工企业工作环境力扣 234 回文链表
题目描述
给你一个单链表的头节点 head #xff0c;请你判断该链表是否为回文链表。如果是#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。 示例 1#xff1a; 输入#xff1a;head [1,2,2,1]
输出#xff1a;true示例 2#xff1…力扣 234 回文链表
题目描述
给你一个单链表的头节点 head 请你判断该链表是否为回文链表。如果是返回 true 否则返回 false 。 示例 1 输入head [1,2,2,1]
输出true示例 2 输入head [1,2]
输出false提示
链表中节点数目在范围[1, 105] 内0 Node.val 9
思路分析
之前有写过但那时还没有学习栈只能通过逆置链表来进行操作现在对栈有了一些了解后可以更加方便的进行操作了。
这里我们利用一个数组来代替栈进行操作非常简单将链表的所有数据入栈然后再遍历一次链表每次将当前节点与栈顶元素比较如果一一相等说明满足回文结构。
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
bool isPalindrome(struct ListNode* head) {int stack[100000]{0};int top0;struct ListNode* curhead;while(cur){stack[top]cur-val;curcur-next;} curhead;while(cur){if(cur-val!stack[top-1]){return false;}curcur-next;top--;}return true;
}