zoukankan      html  css  js  c++  java
  • 快慢指针倒数第K个节点,每K个一组反转链表

    找出单向链表中的一个节点,该节点到尾指针的距离为K

    找出单向链表中的一个节点,该节点到尾指针的距离为K。链表的倒数第0个结点为链表的尾指针。要求时间复杂度为O(n)。
    链表结点定义如下:
    struct ListNode
    {
    int m_nKey;
    ListNode* m_pNext;
    }
    链表节点的值初始化为1,2,3,4,5,6,7。

    输入描述:
    该节点到尾指针的距离K
    
    输出描述:
    返回该单向链表的倒数第K个节点,输出节点的值
    

    示例1

    输入
    2
    
    输出
    6
    

    其实就是找倒数第K个节点嘛。

    链接:https://www.nowcoder.com/questionTerminal/0cff324157a24a7a8de3da7934458e34?f=discussion
    class Node:
        def __init__(self,x):
            self.val = x
            self.next = None
    head = Node(0)
    temp = head
    for i in range(1,8):
        node = Node(i)
        temp.next = node
        temp = node
     
    first = head.next
    i = 0
    k = int(input())
    while i < k-1:
        first = first.next
        i += 1
    slow = head.next
    while first.next:
        first = first.next
        slow = slow.next
    print(slow.val)
    

    每K个一组反转链表

    答案来自答主

    输入描述:
    第一行输入是链表的值第二行输入是K的值,K是大于或等于1的整数输入形式为:1 2 3 4 52
    
    输出描述:
    当 k = 2 时,应当输出:2 1 4 3 5当 k = 3 时,应当输出:3 2 1 4 5当k=6时,应当输出:1 2 3 4 5
    
    输入
    1 2 3 4 5
    2
    
    输出
    2 1 4 3 5
    
    确定k有几组,然后用reverse循环翻转每组,
    reverse翻转cishu = k//2次,举例3,4时,翻转1,2次,很合理。
    
    链接:https://www.nowcoder.com/questionTerminal/a632ec91a4524773b8af8694a51109e7?f=discussion
    #必须3才可以过
    
    def reverse(array, left, right, k):
        cishu = k // 2
        while cishu > 0:
            array[left], array[right] = array[right], array[left]
            left += 1
            right -= 1
            cishu -= 1
     
    array = list(map(int, input().split()))
    k = int(input())
    beishu = len(array) // k
    left = 0
    right = k-1
    for i in range(beishu):
        reverse(array, left, right, k)
        left += k
        right += k
     
    print(" ".join(str(i) for i in array))
    
  • 相关阅读:
    黑马程序员面向对象09天1
    一键安装LNMP
    多屏互动技术
    阿里云CentOS 64位解决kernel2.6.32220.13.1.el6.x86_64 has missing requires错误
    listview的onItemClickListener失效
    在阿里云主机上基于CentOS用vsftpd搭建FTP服务器(赚)
    asp.net关于在线支付的实现过程
    C#关闭登录窗体,显示主窗体
    winform 刷新父窗体(转)
    用代码生成器生成的DAL数据访问操作类 基本满足需求了
  • 原文地址:https://www.cnblogs.com/qizhien/p/11607235.html
Copyright © 2011-2022 走看看