劍指Offer學習-面試題18:刪除鏈表的節點

	 /**
     * 刪除鏈表的節點
     * 給定單項鍊表的頭指針和一個節點指針,定義一個函數在O(1)的時間內刪除該節點
     *
     * @param node
     * @return
     */
    public ListNode deleteNode(ListNode head, ListNode node) {
        if (null == head || null == node) {
            return null;
        }
        ListNode dummy = new ListNode(-1);
        dummy.next = head;
        if (node.next != null) {
            //刪除的節點是中間節點
            int t = node.next.val;
            node.val = t;
            node.next = node.next.next;
        } else {
            //刪除的節點是頭節點或者尾節點
            ListNode cur = dummy;
            while (cur.next != node) {
                cur = cur.next;
            }
            cur.next = cur.next.next;
        }
        return dummy.next;

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章