链表问题 在单链表和双链表中删除倒数第K个节点
来源:互联网 发布:优化布林线 编辑:程序博客网 时间:2024/06/05 14:53
【题目】
分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点。
【要求】
如果链表长度为N,时间复杂度达到(O(N)),额外控件复杂度达到O(1);
单链表
package com.angel.num2;class Node{ int value; Node next; public Node(int value){ this.value = value; }}public class DelNode { public Node removeLastKthNode(Node head,int lastKth){ if (head == null || lastKth < 1) return head; Node cur = head; while (cur != null){ lastKth--; cur = cur.next; } if (lastKth == 0) head=head.next; if (lastKth < 0){ cur = head; while(++lastKth != 0) cur = cur.next; cur.next = cur.next.next; } return head; }}
双链表
package com.angel.num2;class DoubleNode{ int value; DoubleNode last; DoubleNode next; public DoubleNode(int value){ this.value = value; }}public class DoubleDel { public DoubleNode removeLastKthNode(DoubleNode head, int lastKth){ if (head == null || lastKth < 1) return head; DoubleNode cur = head; while (cur != null){ lastKth--; cur = cur.next; } if (lastKth == 0){ head = head.next; head.last=null; } if (lastKth < 0){ while (++lastKth != 0) cur = cur.next; DoubleNode newNext = cur.next.next; cur.next = newNext; if (newNext != null) newNext.last = cur; } return head; }}
阅读全文
0 0
- 链表问题(1)-- 在单链表和双链表中删除倒数第K个节点
- 链表问题——在单链表和双链表中删除倒数第K个节点
- 链表问题---在单链表和双链表中删除倒数第K个节点
- 链表问题 在单链表和双链表中删除倒数第K个节点
- 在单链表和双链表中删除倒数第k个节点
- 左程云_算法与数据结构 — 链表问题 — 02在单链表和双链表中删除倒数第K个节点
- 链表之删除单链表倒数第K个节点
- 数据结构 在单链表和双链表中删除倒数第K个节点
- [链表]-在单链表和双链表中删除倒数第K个节点
- 在单链表和双链表中删除倒数第K个节
- 删除单链表倒数第K个节点
- 单链表删除倒数第k个节点
- 删除单链表和双向链表倒数第k个节点
- 链表之删除双链表倒数第K个节点
- 删除链表倒数k个节点
- 在单链表中删除倒数第K个节点 Python 版
- 反转链表和查找倒数第K个节点
- 链表倒数第k个节点
- 预测数值型数据:回归 源码分析(2)
- python:利用pandas进行绘图(总结)绘图工具
- Android蓝牙socket实现视频实时传输,以及图片和文本传输
- js获取手机ip
- easyui加载combobox
- 链表问题 在单链表和双链表中删除倒数第K个节点
- 3Sum
- Linux网络编程--(1)网络体系架构
- Kafka LEADER_NOT_AVAILABLE问题解决
- HTTP请求行、请求头、请求体详解
- 多个按钮调用同一个方法
- HDU4069-Squiggly Sudoku
- 超前-滞后型DPLL提取位同步时钟的FPGA实现
- LeetCode 452 射气球问题