回文鏈表

題目來源:

牛客網--程序員面試金典

題目描述

請編寫一個函數,檢查鏈表是否為回文。
給定一個鏈表ListNode* **pHead,請返回一個bool,代表鏈表是否為回文。

思路

1.先用頭插法,生成一個新的鏈表
2.然后將新生成的鏈表和原鏈表進行比對

代碼

import java.util.*;

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Palindrome {
    ListNode head;
    ListNode last;
    public boolean isPalindrome(ListNode pHead) {
        // write code here
        ListNode current = pHead;
        
        current = pHead;
        while(current != null){
            insert(current.val);
            current = current.next;
        }
        current = pHead;
        while(current!=null&&head!=null){
            if(current.val != head.val){
                 return false;
                
            }else{
                current = current.next;
                head = head.next;
            }
                 
        }
        return true;
        
    }
//使用頭插法的方式生成一個新的鏈表
     public void insert(int val){  
        ListNode node = new ListNode(val);
        if(head == null){
            head = node;
            last = node;
        }else{
            node.next = head;
            head = node;
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 設計一種方式檢查一個鏈表是否為回文鏈表。再用原地反轉解決一次
    鬼谷神奇閱讀 390評論 0 1
  • 題目 設計一種方式檢查一個鏈表是否為回文鏈表。 樣例1->2->1 就是一個回文鏈表。 分析 鏈表由于其特殊的結構...
    六尺帳篷閱讀 2,487評論 1 1
  • 題目:回文鏈表定義為鏈表正序和逆序輸出結果一致,檢驗鏈表是否是回文鏈表. 解法一 可以將鏈表反轉之后和現在的鏈表的...
    FlyElephant閱讀 464評論 0 0
  • //leetcode中還有花樣鏈表題,這里幾個例子,冰山一角 求單鏈表中結點的個數----時間復雜度O(n)這是最...
    暗黑破壞球嘿哈閱讀 1,535評論 0 6
  • 我最近還在思考這個問題,什么問題呢? 就是如果,在我們LPL取消了升降級,那么LSPL的冠軍應該怎么辦啊? 每年L...
    黃銅刀閱讀 1,096評論 0 0