基础算法之链表查找倒数第N个元素

今天面试被问到数据结构链表:查找链表的倒数第N个元素 第一种方法是遍历链表,记录链表的长度total,再次遍历链表,第total – N – 1个节点就是查找结果,需要遍历两次链表

第二种方法是:使用两个指针,通过移动指针,遍历一次链表,p指针首先移动n-1步,然后p和q同时移动,知道p.next == null,此时p所指向的节点就是所求

    Node p = head;
    Node q = head;
    while(--n != 0 && q != null) {
        q = q.next;
    }        
    if (q == null)
        return null; // n大于链表长度
    while(q.next != null) {
        q = q.next;
        p = p.next;
    }
    return p;

    原文作者:查找算法
    原文地址: https://blog.csdn.net/yurhzzu/article/details/80048785
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞