博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode OJ:Remove Nth Node From End of List(倒序移除List中的元素)
阅读量:7211 次
发布时间:2019-06-29

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

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个元素,开始想用递归做,但是一直失败,没办法看了一下别人的答案,如果总数为N那么倒着第n个相当于正着第N-n个,N的计数通过一次遍历计数即相对的可以得到,代码如下:

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     ListNode* removeNthFromEnd(ListNode* head, int n) {12         ListNode * p, * q, * pPre;13         pPre = NULL;14         p = q = head;15         while(--n > 0)16             q = q->next;17         while(q->next){18             pPre = p;19             p = p->next;20             q = q->next;        }21         if(pPre == NULL){22             head = p->next;23             delete p;24         }else{25             pPre->next = p->next;26             delete p;27         }28         return head;29     }30 };

 

转载于:https://www.cnblogs.com/-wang-cheng/p/4934386.html

你可能感兴趣的文章
镭速(Raysync)文件传输高可用部署介绍!
查看>>
Linux下批量修改文件名
查看>>
浪潮服务器 NF 8460M4 的PM8060 RAID卡设置添加热备方法
查看>>
SPOJ COT Count on a tree(主席树+倍增lca)
查看>>
如何使用Spring优雅地处理REST异常
查看>>
C++多线程编程
查看>>
centos7手动更新、每天自动更新
查看>>
易到遭******以数据要挟索要巨额比特币
查看>>
2018年9月5日第一贴
查看>>
AI加持,华为云视频服务助力企业直播行业
查看>>
Javascript Math ceil()、floor()、round()三个函数的区别
查看>>
This application requires Java Runtime Environment
查看>>
Solr6.1 smartCN配置
查看>>
Java程序员最常用的20%技术总结
查看>>
开源社交系统ThinkSNS+和ThinkSNS V4区别在哪里
查看>>
森拓品牌邀您参加第15届中国模具之都博览会
查看>>
初探PostgreSql
查看>>
Angularjs 中使用 layDate 日期控件
查看>>
学习编程的条件是什么?
查看>>
正则表达式 贪婪与非贪婪
查看>>