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
};

  

posted @ 2022-03-27 21:57  方头小小狮  阅读(40)  评论(0)    收藏  举报