public static boolean checkPallindrone(Node<Integer> head,Node<Integer> last){
//# check if the given linked list is a palindrome
boolean check = true;
if(head==null || head.next==null){
return true;
}
if(head.data != last.data){
return false;
}
Node<Integer>temp = head;
while(temp.next.next !=null){
temp= temp.next;
}
last = temp;
last.next=null;
check = checkPallindrone(head.next, last);
if(check == false){
return false;
}
else return true;
}
这是查找回文的代码段。在此代码中,对象head
和last
将发送到函数。在java中,所有对象都是我在某处读过的引用。所以这里head
和last
是引用或引用应用程序内存结构堆中的链表的引用。
那么,当我在main函数中打印链表时,为什么我没有得到一个空的链表,因为last
会在检查它是否为回文的过程中逐一使所有元素为空?