博客
关于我
在单链表和双链表中删除倒数第K个节点
阅读量:401 次
发布时间:2019-03-05

本文共 1531 字,大约阅读时间需要 5 分钟。

分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点。

public static Node removeLastKthNode(Node head, int lastKth){        if (head == null || lastKth < 1){            return head;        }        Node cur = head;        // 第一遍移动        while(cur != null){            lastKth --;            cur = cur.next;        }        // K大于链表的长度,直接返回        if (lastKth > 0){            return head;        }        // 删除的是头结点--倒数最后一个-第一个        if (lastKth == 0){            return head.next;        }        // 一般情况        if (lastKth < 0){            cur = head; // 重置当前链表            while(++lastKth != 0){ // 找到的是前一个节点 ++lastKth:这个操作很秀                cur = cur.next; // 向下移动            }            cur.next = cur.next.next; // 找到要删除的节点        }        return head;    }
// 与单链表不同的是需要对last指针进行重置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; // 区别1            return head;        }        if (lastKth > 0){            return head;        }        if (lastKth < 0){            cur = head;            while(++ lastKth != 0){                cur = cur.next;            }            cur.next = cur.next.next;            if (cur.next.next != null)                cur.next.next.last = cur;        }        return head;    }

参考书目:

《程序员代码面试指南 IT名企算法与数据结构题目最优解》

转载地址:http://xuczz.baihongyu.com/

你可能感兴趣的文章
Nacos 注册服务源码分析
查看>>
Nacos 融合 Spring Cloud,成为注册配置中心
查看>>
Nacos-注册中心
查看>>
Nacos-配置中心
查看>>
Nacos2.X 源码分析:为订阅方推送、服务健康检查、集群数据同步、grpc客户端服务端初始化
查看>>
Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
查看>>
Nacos2.X源码分析:服务注册、服务发现流程
查看>>
NacosClient客户端搭建,微服务注册进nacos
查看>>
Nacos中使用ribbon
查看>>
Nacos使用OpenFeign
查看>>
Nacos使用Ribbon
查看>>
Nacos做注册中心使用
查看>>
Nacos做配置中心使用
查看>>
Nacos入门过程的坑--获取不到配置的值
查看>>
Nacos原理
查看>>
Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
查看>>
Nacos启动异常
查看>>
Nacos命名空间配置_每个人用各自自己的命名空间---SpringCloud Alibaba_若依微服务框架改造---工作笔记001
查看>>
Nacos和Zookeeper对比
查看>>
Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
查看>>