在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Given a non-empty, singly linked list with head node If there are two middle nodes, return the second middle node. Example 1: Input: [1,2,3,4,5]
Output: Node 3 from this list (Serialization: [3,4,5])
The returned node has value 3. (The judge's serialization of this node is [3,4,5]).
Note that we returned a ListNode object ans, such that:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.
Example 2: Input: [1,2,3,4,5,6]
Output: Node 4 from this list (Serialization: [4,5,6])
Since the list has two middle nodes with values 3 and 4, we return the second one.
Note:
给定一个带有头结点 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL. 示例 2: 输入:[1,2,3,4,5,6] 输出:此列表中的结点 4 (序列化形式:[4,5,6]) 由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。 提示:
Runtime: 4 ms
Memory Usage: 19.1 MB
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func middleNode(_ head: ListNode?) -> ListNode? { 14 guard let _ = head else { 15 return nil 16 } 17 var fastNode = head 18 var slowNode = head 19 while let curNode = fastNode, let tmpNode = curNode.next { 20 slowNode = slowNode?.next 21 fastNode = tmpNode.next 22 } 23 return slowNode 24 } 25 } 4ms 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func middleNode(_ head: ListNode?) -> ListNode? { 14 var list = [ListNode]() 15 16 var currentNode: ListNode? = head 17 while let node = currentNode { 18 list.append(node) 19 currentNode = node.next 20 } 21 22 return list[list.count / 2] 23 } 24 } 4ms 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func middleNode(_ head: ListNode?) -> ListNode? { 14 var slow:ListNode? = head 15 var fast:ListNode? = head 16 while (fast != nil && fast?.next != nil) 17 { 18 slow = slow?.next 19 fast = fast?.next?.next 20 } 21 return slow 22 } 23 } 8ms 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func middleNode(_ head: ListNode?) -> ListNode? { 14 15 var i = head! 16 var j = head! 17 while (j != nil && j.next != nil){ 18 i = i.next! 19 if j.next != nil || j.next!.next != nil{ 20 j = j.next!.next ?? ListNode(0) 21 } 22 } 23 return i 24 } 25 } 24ms 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func middleNode(_ head: ListNode?) -> ListNode? 14 { 15 var x = head 16 var arr:[ListNode] = [] 17 while x != nil { 18 arr.append(x!) 19 x = x?.next 20 } 21 var index = arr.count/2 22 return arr[index] 23 } 24 }
|
请发表评论