leetcode:单链表之Remove Nth Node From End of List
2016-08-04 11:15
405 查看
leetcode:单链表之Remove Nth Node From End of List
题目:
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Given linked list: 1->2->3->4->5, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5.
Note:
• Given n will always be valid.
• Try to do this in one pass.
即:删除链表的倒数第n个元素
c++实现:
输出结果:
题目:
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Given linked list: 1->2->3->4->5, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5.
Note:
• Given n will always be valid.
• Try to do this in one pass.
即:删除链表的倒数第n个元素
c++实现:
#include <iostream> using namespace std; struct ListNode { int val; ListNode *next; ListNode (int x):val(x),next(NULL){ } }; ListNode *createListNode(int arr[],int n) { ListNode *r; ListNode *p; ListNode * L=(ListNode*)malloc(sizeof(ListNode)); r=L; for(int i=0;i<n;i++) { p=(ListNode*)malloc(sizeof(ListNode)); p->val=arr[i]; r->next=p; r=p; } r->next=NULL; return L->next; } ListNode *removeNthFromEnd(ListNode *head, int n) { if(head == NULL || head->next == NULL) return NULL; ListNode * first = head; ListNode * second = head; for(int i = 0;i < n;i++) // first 先走n 步 first = first->next; if(first == NULL) return head->next; while(first->next != NULL) // 一起走 { first = first->next; second = second->next; } second->next = second->next->next; return head; } int main() { int a[]={1,2,3,4,5}; ListNode *input; ListNode *out; int n=2; input= createListNode(a,5); out=removeNthFromEnd(input,2); while(out != NULL) { cout<<out->val; out = out->next; } cout<<endl; return 0; }
输出结果:
相关文章推荐
- 【leetcode】【单链表】【19】Remove Nth Node From End of List
- 【leetcode】【单链表】【19】Remove Nth Node From End of List
- 【Leetcode】19. Remove Nth Node From End of List - 删掉链表倒数第n个节点
- leetCode 19. Remove Nth Node From End of List 链表
- [LeetCode] Remove Nth Node From End of List 移除链表倒数第N个节点
- LeetCode-Remove Nth Node From End of List-移除从链表结尾数第n个结点-双指针链表操作
- [LeetCode-19] Remove Nth Node From End of List(删除链表中倒数第N个节点)
- leetcode_c++:链表:Remove Nth Node From End of List(019)
- leetcode:Remove Nth Node From End of List(删除链表倒数第n个节点)【面试算法题】
- [LeetCode]—Remove Nth Node From End of List 删除链表的倒数第n个节点
- leetcode 3. 移除链表的倒数第n个节点 Remove Nth Node From End of List
- 面试题15:链表中倒数第k个节点(Leetcode-19:Remove Nth Node From End of List)
- LeetCode之“链表”:Remove Nth Node From End of List
- Leetcode 19 Remove Nth Node From End of List 链表
- Remove Nth Node From End of List 链表删除倒数第N个元素@LeetCode
- leetcode_19题——Remove Nth Node From End of List(链表)
- leetcode Remove Nth Node From End of List 链表 双指针
- leetcode 19. Remove Nth Node From End of List-移除链表元素|双指针
- LeetCode 19. Remove Nth Node From End of List(删除链表)
- LeetCode-19-Remove Nth Node From End of List(链表)-Easy