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

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

class Solution {
public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode *temp=head; int count=0; while(temp) { count++; temp=temp->next; } int del=count-n+1; ListNode *prenode=new ListNode(-1); ListNode *pre=prenode; pre->next=head; temp=head; count=1; while(temp) { if (count == del) { pre->next = pre->next->next; break; } pre=temp; temp=temp->next; count++; } return prenode->next; }};

这是第二种解决方法 整个过程只需要遍历一遍 当后指针指向n+2个节点的时候 前指针指向第一个数 当后指针为null的时候 前指针指向倒数第n个节点的前驱节点。

class Solution {public:    ListNode* removeNthFromEnd(ListNode* head, int n) {        if(!head)            return head;        ListNode *prehead=new ListNode(-1);        if(!head->next&&n==1)            return NULL;        prehead->next=head;        ListNode *first=NULL;        ListNode *tail=prehead;        int count=1;        while(tail)        {            if(count==n+2)            {                first=prehead;            }            tail=tail->next;            count++;            if(first)                first=first->next;        }        if(count==n+2)        {            first=prehead;        }        first->next=first->next->next;        return prehead->next;    }};

转载地址:http://thked.baihongyu.com/

你可能感兴趣的文章
java非访问修饰符
查看>>
Java String、StringBuffer、StringBuilder类
查看>>
java异常处理总结
查看>>
java多线程知识总结
查看>>
Java 抽象类和接口
查看>>
java练习总结
查看>>
链表参考
查看>>
JAVA虚拟机类加载机制
查看>>
JVM垃圾回收机制
查看>>
设计模式之代理模式与装饰模式
查看>>
HashMap原理分析
查看>>
小计,困扰了一天的图片内存问题
查看>>
利用aosv库实现各种滚动与组件的互动
查看>>
在navigationView中切换/创建fragment时的卡顿优化
查看>>
在布局中使用include引入其他layout时引发click事件不触发的问题
查看>>
关于使用ListView时某些item点击无效/延迟的解决方案
查看>>
Android Studio 升级2.3以后无法启动App的解决方案
查看>>
Java实现二叉树的遍历
查看>>
Java常用Money转换方法实现
查看>>
mySQL之简单命令
查看>>