码迷,mamicode.com
首页 > 其他好文 > 详细

删除聊表的第N个节点

时间:2020-04-13 10:41:20      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:htm   lis   style   循环   倒数   div   示例   -o   null   

此博客链接:https://www.cnblogs.com/ping2yingshi/p/12689658.html

删除聊表的第N个节点(34min)

题目链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.

当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:

给定的 n 保证是有效的。

题解:

         思路:

                  1)先求出链表的长度。

                  2)再次循环链表,当循环到链表长度减去n的长度时,把指针的next指向next的next.

        注意:当第一次循环链表的长度时,是判断真是是不是null,而不是指针的next是不是空。

代码如下:

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        int count=0;
        ListNode p=head;
        ListNode q=head;
        while(p!=null)
        {
            p=p.next;
            count++;
        }
        
        int k=count-n;
        if(k==0)
        return head.next;
        for(int i=1;i<k;i++)
           q=q.next;
         q.next=q.next.next;
           
        
        return head;

    }
}

 

删除聊表的第N个节点

标签:htm   lis   style   循环   倒数   div   示例   -o   null   

原文地址:https://www.cnblogs.com/ping2yingshi/p/12689658.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!