当前位置 博文首页 > 青春季风暴:查找单链表中的倒数第k个结点

    青春季风暴:查找单链表中的倒数第k个结点

    作者:[db:作者] 时间:2021-09-06 10:19

    问题:

    编写代码,查找单链表中的倒数第K个节点

    ?

    思路分析:

    1.编写一个方法,接收head节点,同时接收一个index
    2. index表示是倒数第index个节点
    3.先把链表从头到尾遍历,得到链表的总的长度getLength
    4. 得到size 后,我们从链表的第一个开始遍历(size-index)个, 就可以得到
    5.如果找到了,则返回该节点,否则返回null

    ?

    代码:

        public static HeroNode findIastIndexNode(HeroNode head, int index) {
            //判断如果链表为空,返回null
            if (head.next == null) {
                return null;//没有找到
            }
            //第一个遍历得到链表的长度(节点个数)
            int size = getLength(head);
            //第二次遍历size-index 位置,就是我们倒数的第K个节点
            //先做一-个index的校验
            if (index <= 0 || index > size) {
                return null;
            }
            //定义给辅助变量,for 循环定位到倒数的index
            HeroNode cur = head.next; //3//3- 1 =2
            for (int i = 0; i < size - index; i++) {
                cur = cur.next;
            }
            return cur;
        }

    ?

    cs
    下一篇:没有了