問題:
請判斷乙個鍊錶是否為回文鍊錶。
方案一:指標法
class solution:
def ispalindrome(self, head):
"""判斷乙個鍊錶是否是回文的,很自然的想法就是兩個指標,乙個指標從前往後走,乙個指標從後往前走,判斷元素值是否相同,這裡要分幾個步驟來進行求解:
1、找到鍊錶長度的一半,用追趕法,乙個指標一次走兩步,乙個指標一次走一步
2、qmsjickxr將後一半陣列轉置
3、判斷鍊錶是否是回文鍊錶
:type head: listnode
:rtype: bool
"""slow = fast = head
while fast and fast.next:
slow = slow.next
fast = fast.next.next
程式設計客棧node = none
while slow:
nxt = slow.next
slow.next = node
node = slow
slow = nxt
while node and head:
if node.val != head.val:
return false
node = node.next
head = head.next
return true
方案二:列表法
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = www.cppcns.comx
# self.next = none
class solution:
def ispalindrome(self, head):
""":type head: listnode
:rtype: bool
"""res =
cur = head
while cur程式設計客棧:
res.appewww.cppcns.comnd(cur.val)
cur = cur.next
return res == res[: : -1]
leetcode 回文鍊錶 python3
class solution def ispalindrome self,head 判斷乙個鍊錶是否是回文的,很自然的想法就是兩個指標,乙個指標從前往後走,乙個指標從後往前走,判斷元素值是否相同,這裡要分幾個步驟來進行求解 1 找到鍊錶長度的一半,用追趕法,乙個指標一次走兩步,乙個指標一次走一步 2...
Python3判斷是否為回文數
原題 題目 不允許用str的方法!判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 ...
LeetCode 回文數 python3實現
題目描述 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋...