234 簡單 回文鍊錶

2021-10-24 10:34:58 字數 736 閱讀 6506

思路:1遍歷整個鍊錶,將所有數儲存在陣列中,判斷陣列中的資料是否是回文

bool ispalindrome

(struct listnode* head)

;int pop =0;

struct listnode* temp = head;

while

(temp)

for(

int i =

0; i < pop/

2; i++)}

return true;

}

2 鍊錶前半部分逆置,遍歷後半部分是否與前半部分相同

bool ispalindrome

(struct listnode* head)

while

(p1)

p1 = head->next;

for(

int i =

1; i < len/

2; i++

) head->next =

null;if

(len %2)

while

(p1)

p1 = p1->next;

p2 = p2->next;

}return true;

}

鍊錶 回文鍊錶(leetcode234

把鍊錶中所有元素儲存到棧中,也就實現了將鍊錶中的元素逆序存放到棧中。然後再將棧中元素乙個乙個出棧並和鍊錶比對,將鍊錶乙個乙個往下指 時空間複雜度 o n public static boolean ispalindrome listnode head stackstack new stack lis...

234 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false示例 2 輸入 1 2 2 1輸出 true首先建立兩個指標指向鍊錶,然後使其中乙個指標指向鍊錶中間,這裡可以使用另乙個指標快速移動,當另乙個指標移動速度是前一根指標的一倍時,就可以使slow指標到一半,而fast指標遍歷完了。使用...

234 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?正確思路是1.先找到鍊錶的中點 通過快慢雙指標,快指標一次移動兩個單位,慢指標一次移動乙個單位,當快指標頂到頭的時...