zoukankan      html  css  js  c++  java
  • 剑指Offer(书):删除链表的节点

    题目:在O(1)的时间内删除列表节点。

    /**
     * 步骤:
     *  1.检查head与removeNode节点是否为空
     *  2.检查removeNode的后一个节点是否为空,不为空则使用后一个节点的值覆盖removeNode节点。
     *  3.若只有一个节点,则置空。
     *  4.若removeNode为最后一个节点,则只能遍历。
     * @param head
     * @param removeNode
     */
    public void removeNode(ListNode head, ListNode removeNode){
        if(head==null || removeNode==null){
            return;
        }
        if(removeNode.next!=null){
            ListNode tempNode = removeNode.next;
            removeNode.val = tempNode.val;
            removeNode.next = tempNode.next;
            tempNode=null;
            return;
        }
        if(removeNode==head){
            head=null;
            removeNode=null;
            return;
        }
        ListNode tempNode = head;
        while (tempNode.next!=removeNode){
            tempNode = tempNode.next;
        }
        tempNode.next=null;
        removeNode=null;
    }
  • 相关阅读:
    加一
    斐波那契数
    整数的各位积和之差
    移除元素
    删除排序数组中的重复项
    有效的括号
    爬楼梯
    最长公共前缀
    罗马数字转整数
    回文数
  • 原文地址:https://www.cnblogs.com/liter7/p/9437858.html
Copyright © 2011-2022 走看看