您的位置:首页 > 其它

返回倒数第n个结点的值

2017-03-31 16:51 162 查看
题目:

找到单链表倒数第n个节点,保证链表中节点的最少数量为n。

您在真实的面试中是否遇到过这个题? 

Yes

样例

给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.

思路:

这道题是那道删除链表倒数第n个结点的简化版,这个不用删除,直接返回就可以,代码如下。

代码:

/**

 * Definition of ListNode

 * class ListNode {

 * public:

 *     int val;

 *     ListNode *next;

 *     ListNode(int val) {

 *         this->val = val;

 *         this->next = NULL;

 *     }

 * }

 */

class Solution {

public:

    /**

     * @param head: The first node of linked list.

     * @param n: An integer.

     * @return: Nth to last node of a singly linked list. 

     */

    ListNode *nthToLast(ListNode *head, int n) {

        // write your code here

        if(n==0||head==NULL)

            return NULL;

        ListNode *temp=head;

        while(n>0)

        {temp=temp->next;

        n--;

        }

         //ListNode *p=head;

        while(temp!=NULL)

        { temp=temp->next;

          head=head->next;

        }

        return head;

    }

};

感想:

我是先做的那道删除链表倒数第n个结点的题,所以这个题就简单了,直接复制过来,去掉删除操作就过了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: