题解 | #删除链表的倒数第n个节点#(用两个指针&声明一个头指针)

删除链表的倒数第n个节点

http://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6

  /**
  声明一个头指针便于统一操作
  当链表中只有一个节点时,声明一个头指针可以统一操作。

*/
class Solution {
public:

    ListNode* removeNthFromEnd(ListNode* head, int n) {
        // write code here
        ListNode* fast = head,*pre = new ListNode(0);
        pre->next = head;
        head = pre;
        while(n--) fast = fast->next;
        while(fast){
           pre = pre->next;
           fast = fast->next;
        }

        ListNode *r = pre->next;
        pre->next = r->next;
        delete r;

        return head->next;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务