zoukankan      html  css  js  c++  java
  • LeetCode 237. Delete Node in a Linked List

    Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.

    Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.

    题目不难,删除节点,但是方法很巧,将后一个节点直接覆盖当前节点,不需要头指针也能删除节点,唯一不足是不能删除最后一个节点

    代码如下:

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     void deleteNode(ListNode* node) {
    12         ListNode *tmp = node->next;
    13         node->val = tmp->val;
    14         node->next = tmp->next;
    15         delete tmp;
    16     }
    17 };

    时间复杂度:O(1)

    空间复杂度:O(1)

  • 相关阅读:
    web.xml
    ibatis配置
    ibatis基本语法
    XML文件解析
    进制转换
    BaseAction
    【编译】StreamInsight简介
    秒懂C#通过Emit动态生成代码
    百度地图应用开发(二)
    ListView与Adapter的那些事儿
  • 原文地址:https://www.cnblogs.com/dapeng-bupt/p/8270721.html
Copyright © 2011-2022 走看看