链表中倒数第k个结点
来源:互联网 发布:网络拓扑visio图库 编辑:程序博客网 时间:2024/06/05 02:39
题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路:
弄两个指针让他们相距k,当后面的指针跑到链表尾,这时前面一个指针的位置就是要找的节点。注意,边界条件。
package cn.yzx.nowcoder;/** * 题目描述 * 输入一个链表,输出该链表中倒数第k个结点。 * @author Administrator * */public class FindKthToTail { public static void main(String[] args) { ListNode head = new ListNode(-1); ListNode testList = new ListNode(1); ListNode testList1 = new ListNode(2); ListNode testList2 = new ListNode(3); ListNode testList3 = new ListNode(4); ListNode testList4 = new ListNode(5); head.next = testList; testList.next = testList1; testList1.next = testList2; testList2.next = testList3; testList3.next = testList4; ListNode resNode = new FindKthToTail().FindKthToTail(head, 0); System.out.println(resNode.val); } public static class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } //用两个指针让其相距k public ListNode FindKthToTail(ListNode head,int k) { if(head == null) return null; else if(k==0){ return null; } else{ ListNode endNode = head; ListNode resNode = head; int flag = 1; //让endNode和resNode相距k while(endNode.next != null){ if(flag >= k){ resNode = resNode.next; } endNode = endNode.next; flag++; } if(flag < k){ return null; } return resNode; } }}
1 0
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第 k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 输出链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 链表中倒数第k个结点
- 链表中倒数第k个结点
- 查找链表中倒数第k 个结点
- 链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 链表中倒数第k个结点
- 链表中倒数第k个结点[数据结构]
- 链表中倒数第k个结点
- Sketch
- 前端要给力之:代码可以有多烂?
- start.S解析11
- 第八周项目33-对类中深复制的体验
- unix网络编程---读书笔记(一)---tcp/udp/sctp简介
- 链表中倒数第k个结点
- eclipse中 将java项目转换为web项目
- caffe for windows 训练cifar10 及若干问题
- BZOJ 3181|COCI 2012|Broj|数学|容斥|二分|筛法
- JavaScript类型总览(图)
- C++实验4-项目3:乘法口诀表
- StanfordParser句法分析断句错误
- 架构师的能力模型(图)
- Pragmatic eBook 介绍 :Test-Driving JavaScript Applications