1
所以我正在通過破解編碼面試書。我工作的這個問題:反轉和比較迴文解決方案(破解編碼採訪)
「實現一個函數來檢查,如果一個鏈表是迴文」
我注意到,第一個解決方案(第217頁),只提供了一個節點作爲參數傳遞給函數,而不是整個列表。我只是想知道,函數如何知道列表中的下一個節點,沒有提供列表?
我已經提供了下面的代碼,以防萬一。
boolean isPalindrome(LinkedListNode head){
LinkedListNode reversed = reverseAndClone(head);
return isEqual(head, reversed);
}
LinkedListNode reverseAndClone(LinkedListNode node){
LinkedListNode head = null;
while(node != null){
LinkedListNode n = new LinkedListNode(node.data);
n.next = head;
head = n;
node = node.next;
}
return head;
}
boolean isEqual(LinkedListNode one, LinkedListNode two) {
while(one != null && two != null){
if (one.data != two.data){
return false;
}
one = one.next;
two = two.next;
}
return one == null && two == null;
}
因爲它是來自**鏈接**列表的節點。 – jonrsharpe