数据结构Day9
1、删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode * removeNthFromEnd ( struct ListNode * head , int n ) { struct ListNode * front = head , * temp = NULL ; //设置两个指针变量,一个指向第n个节点,另一个保持头节点, //之后一直做循环,直到second节点指向了最后一个节点时, //此时first节点就会指向倒数第n个节点,之后对该节点做删除操作即可。 struct ListNode * first = head , * second = head ; int ntemp = n ; while ( n ) { if ( second -> next != NULL ) { second =