C 回文鍊錶

2021-09-30 01:52:31 字數 732 閱讀 9869

判斷乙個鍊錶是否為回文鍊錶。

示例 :

輸入:

1->

2 輸入:

1->

2->

2->

1 輸出: false 輸出: true

first: 遍歷鍊錶,知道鍊錶的長度,並找到中間節點(快慢指標實現);

second:逆至後半段鍊錶,使用兩個指標分別從頭和中間比較每一半的鍊錶數值;注意鍊錶長度奇偶數。 "或者遍歷並用陣列記錄一遍鍊錶節點資料,再將陣列尾到頭部與煉表相比較,一致則為回文鍊錶。(需要開闢儲存空間)"

/* definition for singly-linked list

struct listnode

; */

typedef

struct listnode node;

bool ispalindrome

(struct listnode* head)

slow=slow->next;

while

(slow!=

null

)while

(temp!=

null

)return true;

}

LeetCode(鍊錶)回文鍊錶 c

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true definition for singly linked list.struct listnode class solution 將後半部分鍊錶反轉 listnode temp l...

鍊錶回文判斷(C )

題目描述 對於乙個鍊錶,請設計乙個時間複雜度為o n 額外空間複雜度為o 1 的演算法,判斷其是否為回文結構。給定乙個鍊錶的頭指標a,請返回乙個bool值,代表其是否為回文結構。保證鍊錶長度小於等於900。測試樣例 1 2 2 1 返回 true 思路 由於空間複雜度要求為o 1 也就是說臨時占用空...

鍊錶 回文鍊錶

在leetcode上有兩個題 234.回文鍊錶 面試題 02.06.回文鍊錶 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?遍歷一遍鍊錶得到值的陣列 判斷陣列是...