From 8ebf336245b1ba2e120484fbbdd00728ad4d2ea2 Mon Sep 17 00:00:00 2001 From: Anton Dryakhlykh Date: Sat, 13 Apr 2024 20:51:57 +0300 Subject: [PATCH] Create 2130-maximum-twin-sum-of-a-linked-list.swift --- ...30-maximum-twin-sum-of-a-linked-list.swift | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 swift/2130-maximum-twin-sum-of-a-linked-list.swift diff --git a/swift/2130-maximum-twin-sum-of-a-linked-list.swift b/swift/2130-maximum-twin-sum-of-a-linked-list.swift new file mode 100644 index 000000000..823fb8e23 --- /dev/null +++ b/swift/2130-maximum-twin-sum-of-a-linked-list.swift @@ -0,0 +1,35 @@ +/** + * Question Link: https://leetcode.com/problems/maximum-twin-sum-of-a-linked-list/ + */ + + /** + * Definition for singly-linked list. + * public class ListNode { + * public var val: Int + * public var next: ListNode? + * public init() { self.val = 0; self.next = nil; } + * public init(_ val: Int) { self.val = val; self.next = nil; } + * public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; } + * } + */ +class Solution { + func pairSum(_ head: ListNode?) -> Int { + var slow = head + var fast = head + var prev: ListNode? + while fast != nil && fast?.next != nil { + fast = fast?.next?.next + var tmp = slow?.next + slow?.next = prev + prev = slow + slow = tmp + } + var res = 0 + while slow != nil { + res = max(res, prev!.val + slow!.val) + prev = prev?.next + slow = slow?.next + } + return res + } +} \ No newline at end of file