BM13 判断一个链表是否为回文结构


/*
* function ListNode(x){
* this.val = x;
* this.next = null;
* }
*/
/**
*
* @param head ListNode类 the head
* @return bool布尔型
*/
function isPail( head ) {
// write code here
let Arr = []
let p1 = head
//遍历链表,将链表元素取出来放到一个新数组
let k = 0
while(p1){
Arr.push(p1.val)
p1 = p1.next
k++
}
//判断数组是不是回文结构
//数组长度为偶数
let flag = true
if(k==1 || k==0){
flag = true
}
if(k%2==0)
for(let i=0; i< (k/2) ;i++){
if(Arr[i] !== Arr[k-1-i]){
flag = false
}
}
//数组长度为奇数
if(k%2 ){
for(let i=0; i< Math.ceil( (k/2) ); i++ ){
if(Arr[i] !== Arr[k-1-i]){
flag = false
}
}
}
return flag
}
module.exports = {
isPail : isPail
};

浙公网安备 33010602011771号