LeetCode6 回文鍊錶

2021-10-06 06:04:43 字數 1043 閱讀 3259

題目描述

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

示例 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 要...