(java)leetcode-19

1295 단어 leetcode
Remove Nth Node From End of List
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.
문제 풀이 방향:
내 생각 은 마지막 n 번 째 node 를 찾 아야 한 다 는 것 이다. 그래서 n 번 째 node 를 찾 아 0 번 째 와 n 번 째 node (p1, p2 로 기억) 를 기록 한 다음 에 이 두 node 는 그들의 next 를 가리 키 며 p2 의 next 가 null 이 될 때 까지 계속 가리 키 고 있다. 이때 p1 은 마지막 n - 1 번 째 node 이다. 이때 p1. next = p1. next. next. next 가 임 무 를 완성 할 수 있다.그 러 니까 쉬 워.
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode first = new ListNode(0);
		first.next = head;
		ListNode p1 = first;
		ListNode p2 = first;
		int k = 0;
		while(k

좋은 웹페이지 즐겨찾기