dengxinyi 6 gadi atpakaļ
vecāks
revīzija
f3cc46e247
1 mainītis faili ar 29 papildinājumiem un 0 dzēšanām
  1. 29 0
      medium/328.odd-even-linked-list.go

+ 29 - 0
medium/328.odd-even-linked-list.go

@@ -0,0 +1,29 @@
+/**
+ * Definition for singly-linked list.
+ * type ListNode struct {
+ *     Val int
+ *     Next *ListNode
+ * }
+ */
+func oddEvenList(head *ListNode) *ListNode {
+	if head == nil || head.Next == nil {
+		return head
+	}
+	odd, even := head, head.Next
+	prev, slow, fast := odd, odd, even
+	for fast != nil && slow != nil {
+		slow.Next = fast.Next
+		if fast.Next != nil {
+			fast.Next = fast.Next.Next
+		}
+		fast = fast.Next
+		prev = slow
+		slow = slow.Next
+	}
+	if slow == nil {
+		prev.Next = even
+	} else {
+		slow.Next = even
+	}
+	return odd
+}