zoukankan      html  css  js  c++  java
  • leetcode-19-删除链表的倒数第N个节点

    问题:

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        /**
         * 删除倒数第n个节点
         * 思路1:
         * 两次遍历
         * 第一次遍历:记录该链表一共有多少个节点 len
         * 找到要删除节点的位置 len = len-n
         * 第二次遍历:len每次减1,当len为0是即为要删除的节点
         * 将要删除节点后一个节点覆盖当前节点
         */
        public ListNode removeNthFromEnd(ListNode head, int n) {
            ListNode dummy = new ListNode(-1);
            dummy.next = head;
            if (n == 1 && head.next == null) {
                return null;
            }
    
            int len = 0;
            ListNode temp = head;
            while (temp != null) {
                temp = temp.next;
                len++;
            }
            int del = len - n;
            temp = dummy;
            while (del > 0) {
                temp = temp.next;
                del--;
            }
            temp.next = temp.next.next;
            return dummy.next;
        }
    }
  • 相关阅读:
    linux ipsec
    inotify+rsync
    多实例tomcat
    Http和Nginx反代至Tomcat(LNMT、LAMT)
    cisco ipsec
    ansible基础
    Qt 汉字乱码
    Model/View
    面对焦虑
    QT中QWidget、QDialog及QMainWindow的区别
  • 原文地址:https://www.cnblogs.com/nxzblogs/p/11275844.html
Copyright © 2011-2022 走看看