链表中倒数第k个节点

news/2024/9/9 13:00:44

 链表中倒数第k个节点

【题目】:

输入一个链表,输出该链表中倒数第k个节点。

例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。

示例:

给定一个链表: 1->2->3->4->5, 和 k = 2.

返回链表 4->5.

【解题思路】:

  1. 使用双指针,一个先跑到第k个节点,然后第二个指针从头开始与第一个指针同时遍历,直到第一个指针指向空,此时第二个指针就指向倒数第k个节点;
  2. 使用递归的回溯法【这儿未解答】

示例代码1:

#  define a linklist
class LinkNode(object):def __init__(self, val):self.val = valself.next = None#  creat a linklist
def creat_linklist(li):if not li:returnhead = p = LinkNode(li[0])for i in li[1:]:p.next = LinkNode(i)p = p.nextreturn head#  find last k node
def find_last_node(head, k):if not head and k == 0:returnfirst, second = head, Nonefor i in range(k - 1):if first.next is not None:first = first.nextelse:return Nonesecond = headwhile first.next:first = first.nextsecond = second.nextprint(second.val)# test
head = creat_linklist([1, 2, 3, 4, 5, 6])
print("findKthToTail", end=": ")
find_last_node(head, 3)

运行结果:

示例代码2:

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution(object):def getKthFromEnd(self, head, k):""":type head: ListNode:type k: int:rtype: ListNode"""p = q = headnum = 1while num != k and p:num += 1p = p.nextif num != k:return Nonewhile p.next:p = p.nextq = q.nextreturn q

示例代码3:

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution(object):def getKthFromEnd(self, head, k):""":type head: ListNode:type k: int:rtype: ListNode"""res = []while head:res.append(head)head = head.nextreturn res[-k]


http://lihuaxi.xjx100.cn/news/266538.html

相关文章

Strut2访问

访问HelloWorld应用的路径的设置 在struts2中,访问struts2中action的URL路径由两部份组成: 包的命名空间action的名称 例如: 访问本例子HelloWorldAction的URL路径为: /l6n/helloWorldAction (注意:完整路径为:http:/…

HashMap源码实现分析

点击上方蓝色“方志朋”,选择“设为星标”回复“666”获取独家整理的学习资料!一、前言HashMap 顾名思义,就是用hash表的原理实现的Map接口容器对象,那什么又是hash表呢。我们对数组都很熟悉,数组是一个占用连续内存的…

linux proxy服务器

1,安装软件 yum -y install squid2,修改配置vim /etc/squid/squid.conf把网段和一些辅助配置添加上辅助设置:网段,一定要把自己所属的网段添加上还可以写acl拒绝访问哪些网址或者网段4,开启服务把开机自启动也开开/etc…

《JS权威指南学习总结--第十一章子集和扩展》

js子集和扩展:http://www.cnblogs.com/ahthw/p/4298449.html ES6新增let和const关键字:http://www.cnblogs.com/telnetzhang/p/5639949.html JS中 var 和 let 关键字的区别:http://www.w3cfuns.com/notes/21400/891cac0f6bff2d7f25d3084618e8…

ACMNO.9求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。 例如:2+22+222+2222+22222(n=5),n由键盘输入。 输入 n 输出 a=2 时

题目描述 求Snaaaaaa…aa…aaa(有n个a)之值,其中a是一个数字。 例如:222222222222222(n5),n由键盘输入。输入 n输出 a2 时的Sn样例输入 5样例输出 24690来源/分类 C语言 题目截图&#xf…

300亿美元,AMD为什么要买Xilinx?

作者 | Just来源 | CSDN(ID:CSDNnews)自2015年5月,Intel(英特尔)以167亿美元收购FPGA生产商Altera后,半导体行业接连传出大整合。上个月,NVIDIA(英伟达)宣布以400亿美元收购芯片设计公司Arm&…

三维点云数据集

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达1The Stanford 3D Scanning Repository(斯坦福大学的3 d扫描存储库)链接:http://graphics.stanford.edu/data/3Dscanrep/这应该是做点云…

浙大校友李旻辰获SIGGRAPH 2021最佳博士论文奖,连续四年华人学者包揽此奖项

视学算法报道机器之心编辑部由于疫情的影响,计算机图形顶级会议ACM SIGGRAPH 2021于8月9日至15日线上举行。该大会颁发了最佳博士论文奖以及计算机图形学成就奖等奖项,其中最佳博士论文奖由UCLA数学系博士后李旻辰摘得,这也是华人学者连续四年…