码迷,mamicode.com
首页 > 其他好文 > 详细

每日编程-20170412

时间:2017-04-12 19:23:12      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:null   color   log   blog   空间复杂度   测试   top   tno   int   

题目描述
对于一个链表,请设计一个时间复杂度为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

标签:null   color   log   blog   空间复杂度   测试   top   tno   int   

原文地址:http://www.cnblogs.com/linhaowei0389/p/6700880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!