判斷一個連結串列是否為迴文結構(java實現)
阿新 • • 發佈:2019-02-11
迴文結構就是節點資料對稱的。例如:1->2->3->2->1.
實現方式,用輔助棧,遍歷連結串列存入棧中。之後pop棧中元素與連結串列資料比較,相同是迴文結構。
public static boolean isPalindrome(ListNode head) {
if (head == null)
return false;
Stack<ListNode> stack = new Stack<ListNode>();
ListNode p = head;
while (p != null) {
stack.push(p);
p = p.nextNode;
}
p = head;
while (p != null) {
if (p.values != stack.pop().values)
return false;
p = p.nextNode;
}
return true;
}
// 連結串列節點類
class ListNode {
public int values;
public ListNode nextNode;
public ListNode(int data) {
this.values = data;
}
}