hello-algo/codes/swift/utils/ListNode.swift

33 lines
867 B
Swift

/**
* File: ListNode.swift
* Created Time: 2023-01-02
* Author: nuomi1 (nuomi1@qq.com)
*/
public class ListNode: Hashable {
public var val: Int //
public var next: ListNode? //
public init(x: Int) {
val = x
}
public static func == (lhs: ListNode, rhs: ListNode) -> Bool {
lhs.val == rhs.val && lhs.next.map { ObjectIdentifier($0) } == rhs.next.map { ObjectIdentifier($0) }
}
public func hash(into hasher: inout Hasher) {
hasher.combine(val)
hasher.combine(next.map { ObjectIdentifier($0) })
}
public static func arrToLinkedList(arr: [Int]) -> ListNode? {
let dum = ListNode(x: 0)
var head: ListNode? = dum
for val in arr {
head?.next = ListNode(x: val)
head = head?.next
}
return dum.next
}
}