输入一个链表,输出该链表中倒数第k个结点。
来源:互联网 发布:nginx视频教程 编辑:程序博客网 时间:2024/05/21 17:44
package com.dixin.temp;import java.util.Stack;/** * Created by admin on 2017/10/25. * 输入一个链表,输出该链表中倒数第k个结点。 */public class G { class ListNode {//内部类节点类 int val; ListNode next = null; ListNode(int val) { this.val = val; } } //@1 通常有倒字,我们都可以考虑一下用栈试试,先把链表反转,然后再找出第k个节点 public ListNode FindKthToTail(ListNode head,int k) { Stack<ListNode> stack=new Stack<ListNode>(); int count=0;//记录链表的个数,有可能小于k,第一次编译不成功就是没考虑到这种请况 //循环将链表中的节点压入栈中 while (head!=null) { stack.push(head); head=head.next; count++; } if(count<k) { return null; } ListNode kNode=null; for(int i=0;i<k;i++) { kNode=stack.pop();//将栈弹出k次,第k次弹出的节点就是我们要的倒数第k个节点 } return kNode; } //@2 用两个指针,先让第一个指针走k-1步,此时若第一个指针是最后一个节点, // 那么第二个指针在的位置就是倒数第k个节点 public ListNode FindKthToTail2(ListNode head,int k) { if(head==null||k<=0) { return null; } ListNode point1=head;//第一个指针 ListNode point2=head;//第二个指针 for(int i=1;i<k;i++) {//第一个指针走k-1步 if(point1.next!=null) { point1=point1.next; } else {//k大于链表的长度,找不到倒数第k个点 return null; } } //此时两个指针一起运动 while(point1.next!=null) {//直到第一个指针是最后一个节点 point1=point1.next; point2=point2.next; } return point2; }}
———-以上两种方法希望各位大神提一下宝贵意见,有更好的方法可以留言哦
阅读全文
0 0
- 链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点。
- 13、输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第K个结点
- 13 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第K个结点
- 输入一个链表,输出该链表中倒数第k个结点。
- 面试题15:输入一个链表,输出该链表中倒数第k个结点。
- 输入一个单向链表,输出该链表中倒数第 k 个结点
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- 面试题15、输入一个链表,输出该链表中倒数第k个结点。
- 输入一个链表,输出该链表中倒数第k个结点。
- 输入一个链表,输出该链表中倒数第k个结点
- Type interface cn.itsun.dao.UserDao is not known to the MapperRegistry.
- js Date对象转成 对应格式的字符串 && NODE.JS从数据库读取的DATETIME对象 转成对应格式的字符串
- hdu 3032 Nim or not Nim? (SG函数+打表)
- 利用Jmap进行简单日志分析
- Android Native jni 编程入门
- 输入一个链表,输出该链表中倒数第k个结点。
- Retrofit简单封装,实现链式编程
- Android_服务Service讲解
- Struts--当action中有多个方法时的配置
- 利用阿里大于(大鱼)平台进行发送手机验证码
- 重新认识Appium
- Object的toString方法:Object的equals方法:System类的概念和构造:冒泡排序,自动装箱拆箱, Date类的常用方法:6 SimpleDateFormat的概述:
- Banner使用方法
- Java必懂之单例模式