每日编程-20170412

Posted r088r088

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日编程-20170412相关的知识,希望对你有一定的参考价值。

题目描述
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。
给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。
测试样例:
1->2->2->1
返回:true

解答:

用栈即可,就是初次答链表,试一下

 1 #include <stack>
 2 using namespace std;
 3 
 4 struct ListNode {
 5 int val;
 6 struct ListNode *next;
 7 ListNode(int x) : val(x), next(NULL) {}
 8 };
 9 
10 class PalindromeList {
11 public:
12     bool chkPalindrome(ListNode* A) {
13         // write code here
14         bool answer = true;
15         ListNode *p = A;
16         stack<int> s;
17         while (p)
18         {
19             s.push(p->val);
20             p = p->next;
21         }
22         p = A;
23         while (p)
24         {
25             if (s.top()!= p->val)
26             {
27                 answer = false;
28                 break;
29             }
30             s.pop();
31             p = p->next;
32         }
33         return answer;
34     }
35 };

 

以上是关于每日编程-20170412的主要内容,如果未能解决你的问题,请参考以下文章

CSDN日报20170412 ——《程序员该如何定位?看这四大方向》

markdown 每日片段

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

使用 Pygments 检测代码片段的编程语言

面向面试编程代码片段之GC