package main
// type Node struct {
// Val int
// Next *Node
// }
func (_ Solution) MiddleNode(head *Node) *Node {
slow := head
fast := head
for fast != nil && fast.Next != nil {
slow = slow.Next
fast = fast.Next.Next
}
return slow
}
Yechim juda oddiy. biz berilgan Linked Listning o'rtasidagi Node ni return qilishimiz kerak. qanday qilib.
slow va fast, buyerda berilgan Linked Listni bir marta aylanib chiqamiz va unda fastga 2 karra tezlik beramiz, slowga oddiy yurish, ammo nimaga ?
Javob shuki bizdagi listni fast 2 karra aytalnishni boshlab start olganida shu vaqtda slow boshlaydi ishni u ozini tezligida shunda masalan fast 100% bolganida slow 50
% yani ortadagi yarmiga yetadi va oshani return qilamiz ))
Hali izoh yo'q. Birinchi bo'ling!