題目描述
請判斷乙個鍊錶是否為回文鍊錶。
示例 1:
輸入: 1->2
輸出: false
示例 2:
輸入: 1->2->2->1
輸出: true
執行步驟:
第一步:找到中間的那個節點
第二步:從中間那個鍊錶往後依次進行翻轉,
第三步:將翻摺之後的與前面一半的鍊錶資料進行比較(只要有乙個資料不一樣那麼就是錯誤的)
bool ispalindrome
(struct listnode* head)
//找到了中間結點 return slow就是中間結點
fast=slow=head;
while
(fast && fast->next)
struct listnode* cur,
*newh,
*next;
newh=
null
; cur=slow;
while
(cur)
cur=newh;
while
(head && cur)
else
}return true;
}
第一步:將鍊錶依次放入到新建立的陣列中
第二步:依次進行比較放入的元素
bool ispalindrome
(struct listnode* head)
; cur=head;
while
(cur)
int start=0;
int end=idx-1;
while
(start < end)
return true;
}
執行結果: LeetCode 鍊錶 234 回文鍊錶
題目 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 思路 可以使用快慢指標進行鍊錶遍歷。1 先構建出乙個空節點,讓慢指標指向該節點,快指標指向head節點...
鍊錶 LeetCode 234 回文鍊錶
鍊錶 leetcode 234.回文鍊錶 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false示例 2 輸入 1 2 2 1 輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?剛寫完反轉鍊錶和求鍊錶中點的好處 首先求鍊錶的中點slow,然後反轉從slo...
LeetCode 234 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。definition for singly linked list.struct listnode bool ispalindrome struct listnode head 示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 要...