オンラインプログラミング--回文チェーンテーブル
2806 ワード
タイトルの説明
チェーンテーブルが返信されているかどうかを確認する関数を作成してください.チェーンテーブルListNode*pHeadを指定すると、チェーンテーブルが返信であるかどうかを表すboolを返します.テストサンプル:{1,2,3,2,1}戻り:true{1,2,3,2,3}戻り:false
チェーンテーブルが返信されているかどうかを確認する関数を作成してください.チェーンテーブルListNode*pHeadを指定すると、チェーンテーブルが返信であるかどうかを表すboolを返します.テストサンプル:{1,2,3,2,1}戻り:true{1,2,3,2,3}戻り:false
import java.util.*;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Palindrome {
public boolean isPalindrome(ListNode pHead) {
// write code here
// write code here
int length = 0; //
ListNode pHeadlength = pHead;
while (pHeadlength.next != null) {
length++;
pHeadlength = pHeadlength.next;
}
length++;
Stack<Integer> stack = new Stack<Integer>();
if (length % 2 == 1) { // ,
for (int i = 0; i < length / 2; i++) {
stack.push(pHead.val);
pHead = pHead.next;
}
pHead = pHead.next;
} else {
for (int i = 0; i < length / 2; i++) {
stack.push(pHead.val);
pHead = pHead.next;
}
}
while (pHead != null) {
if (pHead.val != stack.pop()) {
return false;
}
pHead=pHead.next;
}
return true;
}
}