zoukankan      html  css  js  c++  java
  • 【链表】在O(1)的时间删除链表的节点

     1 /**
     2  * 在O(1)的时间删除链表的节点
     3  * 
     4  * @author
     5  *
     6  */
     7 public class Solution {
     8 
     9     public static void deleteNode(Node head, Node deletedNode) {
    10         if (null == head || null == deletedNode) {
    11             return;
    12         }
    13 
    14         if (deletedNode.next != null) { // 删除的不是尾节点
    15 
    16             System.out.println("1-----");
    17 
    18             Node nextNode = deletedNode.next;
    19             deletedNode.value = nextNode.value;
    20             deletedNode.next = nextNode.next;
    21 
    22         } else if (head == deletedNode) { // 删除的是尾节点,同时尾节点也是头节点,整个链表只有一个节点
    23 
    24             System.out.println("2-----");
    25 
    26             head = null;
    27             deletedNode = null;
    28 
    29         } else { // 删除的是尾节点,但是链表不止一个节点
    30 
    31             System.out.println("3-----");
    32 
    33             // 遍历链表,找出尾节点的前一个节点,将next置为null
    34             Node pNode = head;
    35             while (pNode.next != deletedNode) {
    36                 pNode = pNode.next;
    37             }
    38 
    39             pNode.next = null;
    40             deletedNode = null;
    41         }
    42     }
    43 
    44     public static void main(String[] argss) {
    45 
    46         Node third = new Node(2, null);
    47         Node second = new Node(1, third);
    48         Node first = new Node(0, second);
    49 
    50         deleteNode(first, third);
    51 
    52     }
    53 }
    54 
    55 class Node {
    56 
    57     int value;
    58     Node next;
    59 
    60     public Node(int value, Node next) {
    61         this.value = value;
    62         this.next = next;
    63     }
    64 
    65 }
  • 相关阅读:
    go基础笔记-程序流程控制
    Linux:Day14(上) Centos系统安装
    Linux:Day14(上)
    Linux:Day13(上) CentOS系统启动流程
    Linux:Day13(下) GRUB
    Linux:Day12(下) 进程、任务计划
    Linux:Day12(上) 进程
    Linux:Day10 程序包管理
    Linux:Day24(下) samba
    Linux:Day8(下) RAID
  • 原文地址:https://www.cnblogs.com/jiangyi-uestc/p/5877643.html
Copyright © 2011-2022 走看看