返回倒数第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个结点的题,所以这个题就简单了,直接复制过来,去掉删除操作就过了。
找到单链表倒数第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个结点的题,所以这个题就简单了,直接复制过来,去掉删除操作就过了。
相关文章推荐
- LeetCode Remove Nth Node From End of List 删除链表的倒数第n个结点
- 链表——删除链表中倒数第n个结点(时间复杂度为O (n))
- 删除链表中倒数第n个结点
- LeetCode 19. Remove Nth Node From End of List--删除链表的倒数第n个结点
- LinkLists 链表中返回倒数第n个元素 @CareerCup
- 返回单链表中倒数第N个元素问题
- Remove Nth Node From End of List 删除链表的倒数第n个结点
- 小程序:删除单链表中倒数第n个结点
- 一道求单向链表倒数第N个结点的算法题。
- 给定单链表的头结点,如何快速的找到倒数的第n个节点?
- 删除链表的倒数第n个结点 Remove Nth Node From End of List
- 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。
- 查找链表倒数第N个结点的地址(C++)
- 为博客园上一道面试题写的代码-一道求单向链表倒数第N个结点的算法题。
- 算法2:在linked list中找倒数第N个结点
- Chapter 2 | Linked Lists--返回单链表倒数第n个元素及删除中间的某个节点
- 【算法】删除单链表的倒数第N个结点
- leetcode解题之 19. Remove Nth Node From End of List java 版(删除链表倒数第n个结点)
- 坚持坚持!用Java写出删除一个链表的倒数第N个节点,并返回头节点(N总是可达的)
- LeetCode | Remove Nth Node From End of List(移除链表中倒数第n个结点)