• leetcode328


    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     public int val;
     *     public ListNode next;
     *     public ListNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public ListNode OddEvenList(ListNode head) {
            if (head != null)
                {
                    ListNode odd = head, even = head.next, evenHead = even;
    
                    while (even != null && even.next != null)
                    {
                        odd.next = odd.next.next;
                        even.next = even.next.next;
                        odd = odd.next;
                        even = even.next;
                    }
                    odd.next = evenHead;
                }
                return head;
        }
    }

    https://leetcode.com/problems/odd-even-linked-list/#/description

    补充一个python的实现:

     1 class Solution:
     2     def oddEvenList(self, head: 'ListNode') -> 'ListNode':
     3         l = list()
     4         while head:
     5             l.append(head.val)
     6             head = head.next
     7 
     8         even = None
     9         odd = None
    10         temp = None
    11         if len(l) == 0:
    12             return None
    13         for i in range(len(l)-1,-1,-1):
    14             if i % 2 == 0:
    15                 curodd = ListNode(l[i])
    16                 if not temp:
    17                     temp = curodd
    18                 curodd.next = odd
    19                 odd = curodd
    20             else:
    21                 cureven = ListNode(l[i])
    22                 cureven.next = even
    23                 even = cureven
    24         temp.next = even
    25         return odd

    补充一个简化版本的,执行效率更高:

     1 class Solution:
     2     def oddEvenList(self, head: ListNode) -> ListNode:
     3         if head == None:
     4             return None
     5         odd,even,evenhead = head,head.next,head.next
     6         while even != None and even.next != None:
     7             odd.next = odd.next.next
     8             odd = odd.next
     9             even.next = even.next.next
    10             even = even.next
    11         odd.next = evenhead
    12         return head
  • 相关阅读:
    我的第一个shell 脚本
    ubuntu下配置java环境变量在root用户不生效
    ES6ES11易忘笔记
    UE4:Gameplay
    游戏服务器架构
    手柄陀螺仪、加速度计算
    UE4启动脚本(命令行参数)
    UE4:时间相关
    shell基础
    go Cobra命令行工具入门
  • 原文地址:https://www.cnblogs.com/asenyang/p/6970241.html
Copyright © 2020-2023  润新知