tianyun vor 3 Jahren
Ursprung
Commit
3475814540
2 geänderte Dateien mit 59 neuen und 0 gelöschten Zeilen
  1. 38 0
      leetcode/src/main/java/ListNode.java
  2. 21 0
      leetcode/src/main/java/Solution19.java

+ 38 - 0
leetcode/src/main/java/ListNode.java

@@ -0,0 +1,38 @@
+public class ListNode {
+    int val;
+    ListNode next;
+
+    ListNode() {
+    }
+
+    ListNode(int val) {
+        this.val = val;
+    }
+
+    ListNode(int val, ListNode next) {
+        this.val = val;
+        this.next = next;
+    }
+
+    public static ListNode fromArray(int... values) {
+        ListNode dumpHead = new ListNode();
+        ListNode head = dumpHead;
+        for (int value : values) {
+            head.next = new ListNode(value);
+            head = head.next;
+        }
+        return dumpHead.next;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        ListNode tmpNode = this;
+        sb.append(val);
+        while (tmpNode.next != null) {
+            sb.append(String.format(" , %s", tmpNode.next.val));
+            tmpNode = tmpNode.next;
+        }
+        return sb.toString();
+    }
+}

+ 21 - 0
leetcode/src/main/java/Solution19.java

@@ -0,0 +1,21 @@
+//给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
+public class Solution19 {
+    public ListNode removeNthFromEnd(ListNode head, int n) {
+        ListNode dumpHead = head;
+        ListNode p1 = head, p2 = head;
+        for (int i = 0; i < n; i++) {
+            p1 = p1.next;
+        }
+        while (p1.next != null) {
+            p1 = p1.next;
+            p2 = p2.next;
+        }
+        p2.next = p2.next.next;
+        return dumpHead;
+    }
+
+    public static void main(String[] args) {
+        ListNode listNode = ListNode.fromArray(1, 2, 3, 4, 5);
+        System.out.println(new Solution19().removeNthFromEnd(listNode, 2));
+    }
+}