想着把链表转成数组 然后双指针判断是否回文
func isPalindrome(_ head: ListNode?) -> Bool {
var array = Array<ListNode>()
var tempNode = head
while tempNode != nil {
if let node = tempNode {
array.append(node)
}
tempNode = tempNode?.next
}
if array.count == 1 {
return true
}
var left = 0
var right = array.count - 1
while left < right {
if array[left].val == array[right].val {
left += 1
right -= 1
}
else {
return false
}
}
return true
}
网友评论