From 7795f812f057cc51cf65dcaa96476c30314d130f Mon Sep 17 00:00:00 2001 From: delight010 Date: Wed, 13 Aug 2025 15:29:07 +0900 Subject: [PATCH 1/2] solve problem --- merge-two-sorted-lists/delight010.swift | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 merge-two-sorted-lists/delight010.swift diff --git a/merge-two-sorted-lists/delight010.swift b/merge-two-sorted-lists/delight010.swift new file mode 100644 index 000000000..5f74fd687 --- /dev/null +++ b/merge-two-sorted-lists/delight010.swift @@ -0,0 +1,26 @@ +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 mergeTwoLists(_ list1: ListNode?, _ list2: ListNode?) -> ListNode? { + guard let list1 = list1 else { + return list2 + } + guard let list2 = list2 else { + return list1 + } + + if list1.val < list2.val { + list1.next = mergeTwoLists(list1.next, list2) + } else { + list2.next = mergeTwoLists(list2.next, list1) + } + return list1.val < list2.val ? list1 : list2 + } +} + From 5cee6c4530efe6e03af91a1748db60b2109da801 Mon Sep 17 00:00:00 2001 From: delight010 Date: Wed, 13 Aug 2025 16:27:40 +0900 Subject: [PATCH 2/2] solve problem --- maximum-depth-of-binary-tree/delight010.swift | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 maximum-depth-of-binary-tree/delight010.swift diff --git a/maximum-depth-of-binary-tree/delight010.swift b/maximum-depth-of-binary-tree/delight010.swift new file mode 100644 index 000000000..d0d8b5b5c --- /dev/null +++ b/maximum-depth-of-binary-tree/delight010.swift @@ -0,0 +1,26 @@ +class Solution { + func maxDepth(_ root: TreeNode?) -> Int { + if root == nil { + return 0 + } + + var level = 0 + var stack: [(TreeNode?, Int)] = [(root, 1)] + + while !stack.isEmpty { + let (current, count) = stack.removeLast() + if current?.left == nil && current?.right == nil { + level = max(level, count) + } + if let right = current?.right { + stack.append((right, count + 1)) + } + if let left = current?.left { + stack.append((left, count + 1)) + } + } + + return level + } +} +