栈、队列、字符串代码题汇总
2.判断单链表的全部n个字符串是否中心对称
- 令p来到单链表中间的方法
- 法一:双指针(一个走一步,另一个走两步)
- 法二:统计单链表中的元素个数,取n/2
- 判断奇数
if(n % 2 != 0){
n是奇数
}
//判断单链表的全部n个字符串是否中心对称
bool fun(LNode *L){
int n = 0;
Stack S;
init(S);
LNode *p =L->next;
while(p != null){
n++;
p = p->next;
}//统计单链表元素个数
p = L->next;
for(int j=0; j<n/2; j++){
push(S, p->data);
p = p->next;
}//前一半元素入栈
if(n % 2 != 0){
p = p->next;
}
while(p != null){
if(pop(S) == p->data){
p = p->next;
}else{
return false;
}
}//前一半元素出栈与后一半元素比较
return true;
}