判斷是否為回文結構

2021-08-13 05:03:32 字數 623 閱讀 1289

法一:棧    時間o(n)+空間o(n)

public static boolean ispanlindrome(node head)

second=second.next;//second指向後半部分第乙個元素

stackstack=new stack();

while(second!=null)

while(!stack.isempty())else

}return true;

}法二:棧+逆序    時間o(n)+空間o(1)

public static boolean isplrome(node head)

node pre=reverse(second);//逆序後半部分

node last=pre;    //記錄要恢復鍊錶的後半部分頭部

while(pre!=head)else

}node p=reverse(last);//恢復鍊錶

return res;

}public static node reverse(node prenode)

return pre;

}

判斷鍊錶是否為回文結構

給定乙個鍊錶的頭節點 head,請判斷該鍊錶是否為回文 正反結構相同 結構。如果鍊錶長度為 n,時間複雜度達到 o n 額外空間複雜度達到 o 1 參考 程式設計師 面試指南 放入棧,時間複雜度o n 空間複雜度o n bool ispalindrome1 node head while null ...

OJ 判斷鍊錶是否為回文結構

思路 先找到鍊錶的中間節點,然後將鍊錶從中間節點之後的後半段反轉 然後將前半段與後半段逐一進行比較。鍊錶的建立 struct listnode bool ispalindrome struct listnode head 將後半段進行反轉 struct listnode newhead null s...

判斷乙個鍊錶是否為回文結構

題目 給定乙個鍊錶的頭結點head,判斷該鍊錶是否為回文結構。例如 1 2 1,返回true 1 2 2 1,返回true 15 6 15,返回true 1 2 3,返回false 方法一 利用棧結構實現。從頭遍歷鍊錶,遍歷的同時把加點一次壓入棧中。因為棧為先進後出結構,所以遍歷完成後,從棧頂到棧底...