本文主要是介绍leetcode -- 19. Remove Nth Node From End of List,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
Given a linked list, remove the n-th node from the end of list and return its head.
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.
Follow up:
Could you do this in one pass?
AC代码
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode slow = head, fast = head;for(int i = 0;i < n;i++) {fast = fast.next;if(fast == null && i == n - 1) return head.next; //删除最后一个节点的情况}while(fast.next != null){fast = fast.next;slow = slow.next;}slow.next = slow.next.next;return head;}
}
这篇关于leetcode -- 19. Remove Nth Node From End of List的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!