zoukankan      html  css  js  c++  java
  • removeNthFromEnd

    19. 删除链表的倒数第N个节点
    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
    
    示例:
    
    给定一个链表: 1->2->3->4->5, 和 n = 2.
    
    当删除了倒数第二个节点后,链表变为 1->2->3->5.
    说明:
    
    给定的 n 保证是有效的。
    
    进阶:
    
    你能尝试使用一趟扫描实现吗?
    
    /**
     * 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) {
            // 预设pre,大佬就是nb
            ListNode pre = new ListNode(0);
            pre.next = head;
            ListNode start = pre;ListNode end = pre;
            while(n!=0){
                end = end.next;
                n--;
            }
            while(end.next != null){
                start = start.next;
                end = end.next;
            }
            start.next = start.next.next;
            // head可能是删除的点
            return pre.next;
        }
    }
    
  • 相关阅读:
    《入门经典》——6.25
    《入门经典》——6.24
    hdu4417
    poj2104(划分树模板)
    D. 实验室传染病
    poj2069
    poj1379
    hdu5950
    poj3417
    LCA——求解最近公共祖先
  • 原文地址:https://www.cnblogs.com/athony/p/13191197.html
Copyright © 2011-2022 走看看