剑指 Offer 22. 链表中倒数第k个节点
发布日期:2021-05-06 23:24:43 浏览次数:26 分类:精选文章

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

package SwordOffer;/*** @Description: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。* @Param:* @return:* @Author: lvhong* @Date:* @E-mail lvhong282@163.com*/  class ListNode {      int val;      ListNode next;      ListNode(int x) { val = x; }  }public class lab22easy {    //单指针    public ListNode getKthFromEnd(ListNode head, int k) {        ListNode former = head;        int len = 0;        while (former != null) {            former = former.next;            len++;        }        ListNode out = head;        for (int i = 0; i < len - k; i++) {            out = out.next;        }        return out;    }        //双指针//        public ListNode getKthFromEnd(ListNode head, int k) {//            ListNode former = head, latter = head;//            for(int i = 0; i < k; i++)//                former = former.next;  //former走到距离latter k步//            while(former != null) {//                former = former.next;  //一起往前走,知道former为null//                latter = latter.next; //latter走到了正确的位置//            }//            return latter;//        }}

 

上一篇:剑指 Offer 23 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
下一篇:Win10开电脑热点以后手机连接会IP配置失败或者一直显示获取IP中

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月03日 06时09分56秒