博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode Remove Nth Node From End of List
阅读量:4693 次
发布时间:2019-06-09

本文共 870 字,大约阅读时间需要 2 分钟。

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.

题意转换一下就是求解单链表的倒数第k个节点,解法是设置两个指针,一个在前一个在后,之间的距离为k,同时向前移动,有点类似滑动窗口,当第一个指针到达链表尾的时候,第二个指针即为倒数第k个节点,具体的见编程之美

ListNode *removeNthFromEnd(ListNode *head, int n){    if(head == NULL) return NULL;    ListNode *q = head,*p = head;    for(int i = 0 ; i < n - 1; ++ i)        q = q -> next;    ListNode *pPre = NULL;    while(q->next){        pPre = p;        p = p->next;        q = q->next;    }    if(pPre == NULL){        pPre = p->next;        delete p;    }else{        pPre ->next = p ->next;        delete p;    }    return head;}

 

 

转载于:https://www.cnblogs.com/xiongqiangcs/p/3629728.html

你可能感兴趣的文章
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
21世纪经济网APP
查看>>
解决NetworkOnMainThreadException
查看>>
1039 到底买不买
查看>>
农银电商项目学习笔记(一)
查看>>
MockObject
查看>>
Chukwa
查看>>
(转)Maven仓库——私服介绍
查看>>
设计模式之工厂模式
查看>>
仿复制粘贴功能,长按弹出tips的实现
查看>>
Kubernetes-Host网络模式应用
查看>>
第三次作业
查看>>
使用HTML5构建iOS原生APP(2)
查看>>
sqlplus terminators - Semicolumn (;), slash (/) and a blank line
查看>>
省选知识清单/计划列表(咕?)
查看>>
远程桌面(3389)复制(拖动)文件
查看>>
转 lucene3搜索引擎,索引建立搜索排序分页高亮显示, IKAnalyzer分词
查看>>
bootstrap datetimepicker 位置错误
查看>>
9结构型模式之代理模式
查看>>
第二节 整型数据
查看>>