問題:
字串是否為回文字串,如abcba (單鏈表儲存)
思路: 快慢指標找到中間節點,並且在慢指標移動時改變node的指向。
找到中間節點以後,從中間節點出發,前後遍歷比較值
步驟: 1.判斷傳入節點是否為空,接下來節點是否為空(非空判斷)
2.快慢指標移動,快指標正常移動,慢指標在移動時,改變node的指標方向,指向前乙個
3.快指標無法移動時,對奇數情況做出特殊處理
4.開始比較,慢指標往後,pre指標往前,同時開始比較
**如下(可直接執行):
public class singlylinedlist
public static class listnode}/*
思路:快慢指標找到中間節點,並且在慢指標移動時改變node的指向。
找到中間節點以後,從中間節點出發,前後遍歷比較值
步驟:1.判斷傳入節點是否為空,接下來節點是否為空(非空判斷)
2.快慢指標移動,快指標正常移動,慢指標在移動時,改變node的指標方向,指向前乙個
3.快指標無法移動時,對奇數情況做出特殊處理
4.開始比較,慢指標往後,pre指標往前,同時開始比較
*/static class solution
listnode fast=head;
listnode slow=head;
listnode pre=null;
//為了偶數情況下才進行這兩個判斷,畫圖可以得到,這樣快指標移動時才不會報錯
while (fast!=null&&fast.next!=null)
//奇數情況,slow往後乙個,保證前後遍歷時起點相同
if (fast!=null)
//前後一起遍歷
while (slow!=null)
slow=slow.next;
pre=pre.next;
}return true;}}
}
判斷字串是否為回文串
題目 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false字串轉為小寫字串從字串開始和...
判斷字串是否回文字串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false public static bo...
判斷單鏈表字串是否為回文字串
判斷單鏈表字串是否為回文字串 例如 abcba 上海自來水來自海上 思想 利用快慢指標,快指標一次走兩格,慢指標一次乙個,因為這個字串為單數,當快指標走到尾,慢指標正好走到中間,將這個中值儲存下來,利用乙個函式將後半部分反轉 因為中值已經被記錄,中值.next就是後半部分的head 用乙個比較函式比...