首页 > 其他 > 详细

单向链表常见面试题

时间:2020-12-29 18:22:08      阅读:23      评论:0      收藏:0      [点我收藏+]

单链表常见面试题

1、求单链表中有效节点的个数;如果是带头结点的单向链表,需求不需要统计头节点。

    //统计有效节点个数;不统计头节点
    public int length(Node head){
        //判断链表是否为空
        if(head.next==null){
            System.out.println("链表为空");
            return 0;
        }
        Node temp=head.next;
        int length=0;
        while(true){
            if(temp==null){//遍历到链表的最后
                break;
            }
            length++;
            temp=temp.next;
        }
        return length;
    }

2、查找单链表中倒数第k个节点

    //查找单链表中倒数第k个节点
    /*1.编写一个方法,接收head节点,同时接收一个index
    2.index表示是倒数第index个节点
    3.先把链表从头到尾遍历,得到链表的总的长度getLength
    4.得到size后,我们从链表的第一个开始遍历(size-index)个,就可以得到
    5.如果找到了,则返回该节点,否则返回null
    */
    public Node findindex(Node head,int index){
        //判断链表是否为空
        if(head.next==null){
           return null;
        }
        //定义一个临时变量,用来遍历
        Node temp=head.next;
        //得到链表的长度
        int len = length(head);
        //做一个index的校验
        if(index<=0||index>len){
            return null;
        }
        //找到倒数第K个位置 len-index为要遍历到的位置
        for(int i=0;i<len-index;i++){
            temp=temp.next;
        }
        return temp;
    }

3、单链表的反转(没有明白)
希望哪位大神指教,单向链表的反转问题

单向链表常见面试题

原文:https://www.cnblogs.com/nj123/p/14207901.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!