Kotlin Leetcode - 876. Middle of the Linked List
class Solution {
fun maxArea(height: IntArray): Int {
}
}
解題思路
本題練習的是針對 linked list 的操作
我們可以使用兩個變數當作指標
其中一個指標在每次移動時,往後移動兩個元素
另一個指標在每次移動時,往後移動一個元素
這樣一來
當移動比較快的指標移動到 linked list 的尾端時
移動比較慢的指標剛好會移動到 linked list 的中間
Kotlin 參考解答
/**
* Example:
* var li = ListNode(5)
* var v = li.`val`
* Definition for singly-linked list.
* class ListNode(var `val`: Int) {
* var next: ListNode? = null
* }
*/
class Solution {
fun middleNode(head: ListNode?): ListNode? {
var fast = head
var slow = head
while(fast != null && fast.next != null) {
slow = slow?.next
fast = fast.next.next
}
return slow
}
}
- 回到 leetcode 列表
- 回到 Grind 75 列表