Remove Nth Node From End of List - LeetCode
来源:互联网 发布:小米电视网络机顶盒 编辑:程序博客网 时间:2024/05/29 14:31
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.
这道题一定要注意的就是,处理头结点要被去除的情况!!
if(count == 0){ return head.next; }
AC代码如下:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if(head == null){ return head; } ListNode current = head; int count = 0; while(current != null){ count ++; current = current.next; } int len = count; if(len == 1){ return null; } count = len - n; if(count == 0){ return head.next; } current = head; ListNode pre = head; for(int i = 0; i < count; i++){ pre = current; current = current.next; } pre.next = current.next; return head; }}
更好的解法:
public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if (n <= 0) { return null; } ListNode dummy = new ListNode(0); dummy.next = head; ListNode preDelete = dummy; for (int i = 0; i < n; i++) { if (head == null) { return null; } head = head.next; } while (head != null) { head = head.next; preDelete = preDelete.next; } preDelete.next = preDelete.next.next; return dummy.next; }}
0 0
- LeetCode[Linked List]: Remove Nth Node From End of List
- 19. Remove Nth Node From End of List leetcode list
- [Leetcode]LeetCode 19:Remove Nth Node From End of List
- LeetCode: Remove Nth Node From End of List
- LeetCode: Remove Nth Node From End of List
- [Leetcode] Remove Nth Node From End of List
- LeetCode: Remove Nth Node From End of List
- leetcode 40: Remove Nth Node From End of List
- [LeetCode] Remove Nth Node From End of List
- Leetcode 19 Remove Nth Node From End of List
- [Leetcode] Remove Nth Node From End of List
- [LeetCode]Remove Nth Node From End of List
- LeetCode-Remove Nth Node From End of List
- [LeetCode] Remove Nth Node From End of List
- LeetCode 19: Remove Nth Node From End of List
- LeetCode - Remove Nth Node From End of List
- LeetCode | Remove Nth Node From End of List
- leetcode之Remove Nth Node From End of List
- wps导致的office的.net编程不可用的解决方案
- UVA11107 Life Froms 后缀数组
- 1021. Deepest Root (25) (查询最小路径,查询有多少部分圈,学习iterator)
- 我走到哪里,都是好样的
- HBase基础
- Remove Nth Node From End of List - LeetCode
- From now on!
- linux ip详解
- ConcurrentHashMap原理分析
- spring整合hibernate出现HibernateException: Unable to get the default Bean Validation factory
- 图像显著度(saliency detection)研究现状调研
- Arquillian测试框架快速上手教程(三)- 使用 Arquillian 进行Java持久化测试
- Java中Vector和ArrayList的区别
- Insert Interval - LeetCode