LintCode-174.删除链表中倒数第n个节点
2017-05-04 14:20
316 查看
删除链表中倒数第n个节点
给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。
注意事项
链表中的节点个数大于等于n样例
给出链表 1->2->3->4->5->null 和 n = 2.删除倒数第二个节点之后,这个链表将变成 1->2->3->5->null .
挑战
O(n)时间复杂度标签
链表 两根指针code
/** * 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: The head of linked list. */ ListNode *removeNthFromEnd(ListNode *head, int n) { // write your code here if(n > 0) { ListNode *pBegin=head, *pEnd=head; while(n-- && pEnd!=NULL) { pEnd = pEnd->next; } // n<链表长度 if(n == -1 && pEnd!=NULL) { while(pEnd->next != NULL) { pBegin = pBegin->next; pEnd = pEnd->next; } pBegin->next = pBegin->next->next; return head; } // n>链表长度 else if(n > -1 && pEnd!=NULL) { return head; } // n=链表长度 else { return head->next; } } } };
相关文章推荐
- python_lintcode_372在O(1)时间复杂度删除链表节点_174删除链表中倒数第n个节点
- 174. 删除链表中倒数第n个节点 (remove-nth-node-from-end-of-list)(c++)----lintcode面试题之链表
- Lintcode 174.删除链表中倒数第n个节点
- lintcode-删除链表中倒数第n个节点-174
- [LintCode] 删除链表中倒数第n个节点
- Lintcode删除链表中倒数第n个节点
- lintcode删除链表中倒数第n个节点
- 174 - 删除链表中倒数第n个节点
- LintCode-删除链表中倒数第n个节点
- LintCode- 删除链表中倒数第n个节点
- LintCode 删除链表中倒数第n个节点
- LintCode—删除链表中倒数第n个节点(174)
- lintcode——删除链表中倒数第n个节点
- Lintcode174——删除链表中倒数第n个节点
- 删除链表中倒数第n个节点-LintCode
- 删除链表中倒数第n个节点-LintCode
- 174删除链表中倒数第n个节点
- LintCode 删除链表中倒数第n个节点
- 删除链表中倒数第n个节点(LintCode)
- lintcode(E)链表倒数第n个节点