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

leetcode 19.删除链表的倒数第N个节点

时间:2019-11-21 21:27:53      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:init   move   list   remove   class   int   val   head   tor   

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

示例:

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

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

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) { val = x; }
 7  * }
 8  */
 9  //双指针法
10 class Solution {
11     public ListNode removeNthFromEnd(ListNode head, int n) {
12         if(null==head){
13             return head;
14         }
15         ListNode iterator = head;
16         ListNode pre = null;
17         ListNode slowIterator = head;
18         int i=1;
19         while(iterator.next!=null){
20             if(i==n){
21                 pre=head;
22                 iterator=iterator.next;
23                 slowIterator=slowIterator.next;
24                 i++;
25             }else if(i<n){
26                 iterator=iterator.next;
27                 i++;
28             }else{
29                 pre=slowIterator;
30                 iterator=iterator.next;
31                 slowIterator=slowIterator.next;
32                 i++;
33             }
34         }
35         if(pre==null){
36             return head.next;
37         }else{
38             pre.next=slowIterator.next;
39             return head;
40         }
41     }
42 }

 

leetcode 19.删除链表的倒数第N个节点

标签:init   move   list   remove   class   int   val   head   tor   

原文地址:https://www.cnblogs.com/gongzixiaobaibcy/p/11908443.html

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