思路
遍历链表,让每个节点都指向其下下个节点,这样就可以把奇偶链给分开,然后再把偶链连接到奇链上即可
code
type ListNode struct {
Val int
Next *ListNode
}
func oddEvenList(head *ListNode) *ListNode {
if head == nil {
return nil
}
odd, even := head, head.Next
evenHead := even
for even != nil && even.Next != nil {
odd.Next = even.Next
odd = odd.Next
even.Next = odd.Next
even = even.Next
}
odd.Next = evenHead
return head
}
更多内容请移步我的repo:https://github.com/anakin/golang-leetcode