zoukankan      html  css  js  c++  java
  • 单链表的删除

    单链表的删除,就是找到链表节点的前面一个节点,将其与待删节点的下一个节点连接,待删节点断链

    function remove(head,val){
        var pre = head;
        while(pre.next && pre.next.val != val){
            pre = pre.next;
        }
        if(pre == null){
            return;
        }
        if(pre.next != null){
            pre.next = pre.next.next;
        }
    }

    另一种删除方法,已知链表的头节点和待删节点,将待删节点的值赋为下一个节点的值,如果节点为末尾节点(非null),则需找到其前面的节点,将其与待删节点断链

    总体时间复杂度仍然为O(1)

    function delete(head,node){
        if(node == null){
            return;
        }
        if(node.next != null){
            node.val = node.next.val;
            var temp = node.next;
            node.next = node.next.next;
            temp.next = null;
         temp = null;
        }
        else{
            if(head == node){
                head = null;
            }
            else{
                var pre = head;
                while(pre.next && pre.next.val != node.val){
                    pre = pre.next;
                }
                if(pre! = null){
                    pre.next = null;
                }
            }
        }
    }
  • 相关阅读:
    获取窗口句柄
    LeetCode Q136 Single Number(Medium)
    异或
    Ring3层的鼠标和键盘Hook
    Java—Applet
    Java—常用数据类型
    Java—接口与抽象类
    Java 概述
    Java—类的封装、继承与多态
    Windows—JDK安装与环境变量配置
  • 原文地址:https://www.cnblogs.com/mengff/p/6885122.html
Copyright © 2011-2022 走看看