• Leetcode练习(Python):链表类:第143题:重排链表:给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。


    题目:
    重排链表:给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…  你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 
    思路:
    使用了懒人做法,使用了栈,应该还有更好的方法,想到后做补充。
    程序:
    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, val=0, next=None):
    #         self.val = val
    #         self.next = next
    class Solution:
        def reorderList(self, head: ListNode) -> None:
            """
            Do not return anything, modify head in-place instead.
            """
            if not head:
                return None
            myStack = []
            index1 = head
            counter = 0
            while index1:
                myStack.append(index1)
                index1 = index1.next
                counter += 1
            num_rotate = counter // 2
            index2 = head
            while num_rotate:
                tmp_node = myStack.pop()
                tmp_node.next = index2.next
                index2.next = tmp_node
                index2 = tmp_node.next
                num_rotate -= 1
            index2.next = None
  • 相关阅读:
    webservice的cxf的客户端
    webservice用cxf发布SOAP
    webservice声明发布SOAP1.2
    webservice使用注解修改WSDL内容
    webservice获取天气信息
    结巴分词原理介绍
    Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
    【Pandas】Pandas求某列字符串的长度,总结经验教训
    UTF-8与UTF-8 BOM
    logging.basicConfig函数
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12821153.html
Copyright © 2020-2023  润新知