博客
关于我
在单链表和双链表中删除倒数第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/

你可能感兴趣的文章
nginx+Tomcat性能监控
查看>>
nginx+uwsgi+django
查看>>
nginx+vsftp搭建图片服务器
查看>>
Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
查看>>
nginx-vts + prometheus 监控nginx
查看>>
Nginx/Apache反向代理
查看>>
Nginx: 413 – Request Entity Too Large Error and Solution
查看>>
nginx: [emerg] getpwnam(“www”) failed 错误处理方法
查看>>
nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:
查看>>
nginx:Error ./configure: error: the HTTP rewrite module requires the PCRE library
查看>>
Nginx:objs/Makefile:432: recipe for target ‘objs/src/core/ngx_murmurhash.o‘解决方法
查看>>
nginxWebUI runCmd RCE漏洞复现
查看>>
nginx_rtmp
查看>>
Nginx、HAProxy、LVS
查看>>
nginx一些重要配置说明
查看>>
Nginx下配置codeigniter框架方法
查看>>
Nginx与Tengine安装和使用以及配置健康节点检测
查看>>
Nginx中使用expires指令实现配置浏览器缓存
查看>>
Nginx中使用keepalive实现保持上游长连接实现提高吞吐量示例与测试
查看>>
Nginx中实现流量控制(限制给定时间内HTTP请求的数量)示例
查看>>