【直播回放】ChatGPT編程刷力扣面試題 02.06. 回文鏈表
直播截圖

編輯切換為居中
題目描述
編寫(xiě)一個(gè)函數(shù),檢查輸入的鏈表是否是回文的。 示例 1: 輸入: 1->2 輸出: false 示例 2: 輸入: 1->2->2->1 輸出: true
開(kāi)始解題(JavaScript)

編輯切換為居中
function isPalindrome(head) { ?// 將鏈表的值復(fù)制到數(shù)組中 ?let vals = []; ?let current = head; ?while (current) { ? ?vals.push(current.val); ? ?current = current.next; ?} ?// 使用雙指針判斷數(shù)組是否是回文的 ?let left = 0; ?let right = vals.length - 1; ?while (left < right) { ? ?if (vals[left] !== vals[right]) { ? ? ?return false; ? ?} ? ?left++; ? ?right--; ?} ?return true; }

編輯切換為居中

編輯切換為居中
實(shí)際應(yīng)用
這個(gè)函數(shù)可以用于判斷一個(gè)鏈表是否是回文的?;匚逆湵硎侵刚x和反著讀都相同的鏈表。這個(gè)函數(shù)可以在很多實(shí)際應(yīng)用中發(fā)揮作用,例如:
判斷一個(gè)字符串是否是回文的:可以將字符串轉(zhuǎn)換為鏈表,然后使用這個(gè)函數(shù)判斷鏈表是否是回文的。
判斷一個(gè)數(shù)字是否是回文的:可以將數(shù)字轉(zhuǎn)換為字符串,然后將字符串轉(zhuǎn)換為鏈表,再使用這個(gè)函數(shù)判斷鏈表是否是回文的。
數(shù)據(jù)校驗(yàn):在某些情況下,我們需要校驗(yàn)輸入的數(shù)據(jù)是否合法,例如密碼是否符合規(guī)定??梢詫⑤斎氲臄?shù)據(jù)轉(zhuǎn)換為鏈表,然后使用這個(gè)函數(shù)判斷鏈表是否是回文的,如果是回文的則說(shuō)明輸入的數(shù)據(jù)合法。
總之,這個(gè)函數(shù)可以在需要判斷某個(gè)序列是否是回文的場(chǎng)景中使用,無(wú)論是字符串、數(shù)字還是其他類(lèi)型的序列都可以通過(guò)轉(zhuǎn)換為鏈表來(lái)使用這個(gè)函數(shù)進(jìn)行判斷。