链表中倒数第 K 个结点-反转链表
来源:互联网 发布:手游变速软件 编辑:程序博客网 时间:2024/05/18 00:14
这是一个比较典型的题,很多地方书籍都有出现。
第一个想到的方法也是最容易的方法当然是先遍历链表得到链表的长度为 length ,
那么倒数第 K 个元素 第 length - K写一个for 循环,即可找到 目标结点。但是这样
需要先遍历一次链表,再遍历到倒数第 K 个结点,比较慢。
比较好的方法是我们设置两个结点,一个firsNode结点从头结点开始先向前走 K-1个
结点,一个secNode结点等firstNode结点向前走了 K -1个结点后再开始向前走。当firstNode
结点到达链表的尾部时secNode则刚好到达倒数第 K 个结点。
public ListNode FindKthToTail(ListNode head,int k) { if(head==null)return null;else{ListNode p=head;ListNode q=head;while(k>0&&p!=null){p=p.next;k--;}if(k>0&&p==null)return null;else{while(p!=null){p=p.next;q=q.next;}return q;}} }
链表的反转
//反转链表public void reverseList(Node head){Node preverseHead=head;Node pNode=head;Node pPre=null;while(pNode!=null){Node pNext=pNode.next;if(pNext==null)preverseHead=pNode;pNode.next=pPre;pPre=pNode;pNode=pNext;}this.head=preverseHead;}
0 0
- 链表中倒数第 K 个结点-反转链表
- 链表倒数第k个结点
- 《剑指offer》--- 链表中的倒数第k个结点 和 反转链表
- 链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点。
- 单链表逆置,反转,并查找倒数第K个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第 k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 输出链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 链表中倒数第k个结点
- 链表中倒数第k个结点
- 查找链表中倒数第k 个结点
- 软件测试常考题
- linux系统vi命令大全
- C++ -- shuffle 和 random_shuffle 随机打乱
- 网络编程_Socket通信原理图解
- class文件魔数CAFEBABE的由来
- 链表中倒数第 K 个结点-反转链表
- Qt--01:基础知识
- REST设计风格
- HtmlPaser英文文档与Http英文文档
- php1
- CharSequence 去除两端空格
- NSOperation的简单使用代码
- <xsl:call-template> 的示例
- 内存泄漏