题解 | #链表的奇偶重排#

链表的奇偶重排

https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#
class Solution:
    def oddEvenList(self , head: ListNode) -> ListNode:
        if head is None:
            return None
        flag = 'odd' #初始化奇偶标志为“奇”,第一个计数下标是奇数
        oddlist = ListNode(-1)
        oddcur = oddlist
        evenlist = ListNode(-1)
        evencur = evenlist
        while head: #按标志分别添加进奇偶链表
            if flag == 'odd':
                newNode = ListNode(head.val)
                oddcur.next = newNode
                oddcur = oddcur.next
                flag = 'even'
            elif flag == 'even':
                newNode = ListNode(head.val)
                evencur.next = newNode
                evencur = evencur.next
                flag = 'odd'
            head = head.next
        oddcur.next = evenlist.next #奇链表连接偶链表
        return oddlist.next

全部评论

相关推荐

Aurora23:属于挂一半,暂时进池子了,隔一段时间没有其他组捞的话就彻底结束了
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务