swift 算法 简单48.回文链表

请判断一个链表是否为回文链表。

示例 1:

输入: 1->2

输出: false

示例 2:

输入: 1->2->2->1

输出: true
 

解法:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public var val: Int
 *     public var next: ListNode?
 *     public init(_ val: Int) {
 *         self.val = val
 *         self.next = nil
 *     }
 * }
 */
class Solution {
    func isPalindrome(_ head: ListNode?) -> Bool {
      var head = head
        
        guard head != nil else {
            return true
        }
        var array = [Int]()
        
        while head != nil {
            array.append(head!.val)
            head = head?.next
        }
        
        var temp = Array(array.reversed())
        
        for iten in 0..<array.count {
            if temp[iten] != array[iten] {
                return false
            }
            
        }

        return true
    }
}

猜你喜欢

转载自blog.csdn.net/huanglinxiao/article/details/92803127
今日推荐