zoukankan      html  css  js  c++  java
  • [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.

    思路:两个指针 p, q,其中q先走n步,之后如果q为null,则删除第一个node,否则,p, q开始一起走,直到q.next为null,此时p.next即是要删除的node.

    JAVA代码:

    public ListNode removeNthFromEnd(ListNode head, int n) {
            ListNode p = head;
            ListNode q = head;
            int i = 0;
            while (i < n) {
                q = q.next;
                i ++;
            }
            if (q == null) {
                head = head.next;
                return head;
            }
            while (q.next != null) {
                q = q.next;
                p = p.next;
            }
            p.next = p.next.next;
            return head;    
        }
  • 相关阅读:
    CControlLayer
    CBiontCache
    CHero
    CWidgetMgr---cpp
    CWidgetMgr---H
    CXAnimation类
    CXAnimation.h动画类
    CXCommon.h工具类
    【leetcode】441. Arranging Coins
    【linux基础】关于ARM板子使用O3编译选项优化
  • 原文地址:https://www.cnblogs.com/lasclocker/p/4803062.html
Copyright © 2011-2022 走看看