LEETCODE 234回文鍊錶

2021-10-03 12:18:44 字數 751 閱讀 7977

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

1.  前半段鍊錶元素進棧,找到中間節點後邊比較邊出棧

bool ispalindrome(listnode* head) 

if(fast->next==null)//偶數鏈退棧處理,保證棧裡面和slow的右邊對稱

s.pop();

while(!s.empty())

else

}return true;

}

2. 用快慢指標遍歷的同時翻轉前半部分,然後與後半部分比較即可

bool ispalindrome(listnode* head) 

if(fast) //奇數個節點時跳過中間節點

slow = slow->next;

while(p)

return 1;

}

3. 將鍊錶中的資料存入向量中,判斷向量中元素是否為回文序列

bool ispalindrome(listnode* head)     

int num = n.size();

for(int i =0;i4. 將鍊錶中的資料存入棧

bool ispalindrome(listnode* head)

ptr = head;

while(ptr)

return true;

}

LeetCode 234 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。definition for singly linked list.struct listnode bool ispalindrome struct listnode head 示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 要...

leetcode 234 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false 示例 2 輸入 1 2 2 1輸出 true 解法1 使用棧 使用快慢指標找中點,原理是每次快指標走兩步,慢指標走一步,等快指標走完時,慢指標的位置就是中點。我們還需要用棧,每次慢指標走一步,都把值存入棧中,等到達中點時,鍊錶的前...

LeetCode 234 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。解題思路 根據 o n 時間複雜度和 o 1 空間複雜度的要求,則不能使用堆疊。首先找到中間節點,然後反轉中間節點之後的節點,最後比較頭結點和中間節點之後元素的大小。bool solution ispalindrome listnode head 1.找到鍊錶的中間位置...