zoukankan      html  css  js  c++  java
  • [Leetcode]237. Delete Node in a Linked List -David_Lin

    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.

    法一:思路是:从node 节点开始,把后面节点的值赋给前面的节点,直到到表尾;

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public void deleteNode(ListNode node) {
    11         ListNode pos = node.next;
    12         if (pos==null)
    13             node=null;
    14         else {
    15             while (pos!=null){
    16                 node.val = pos.val;
    17                 pos = pos.next;
    18                 if (pos==null)
    19                     node.next = null;
    20                 else 
    21                     node = node.next;
    22             }
    23         }
    24     }
    25 }

    法二:将要删除节点后一个节点的值赋给要删除的节点,然后删除后一个节点。

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public void deleteNode(ListNode node) {
    11         if(node.next==null){
    12            node=null;
    13            return;
    14         }
    15         node.val = node.next.val;
    16         node.next = node.next.next;
    17     }
    18 }
    19                 
  • 相关阅读:
    wp8 入门到精通 测量代码执行时间
    过滤器——Filter
    hisui培训笔记
    监听器——servlet
    easyui导出excel表格和遇到的问题
    Java自定义注解
    Json
    Ajax
    探索Java中new一个对象时发生了什么
    SpringBoot常用注解
  • 原文地址:https://www.cnblogs.com/David-Lin/p/7654373.html
Copyright © 2011-2022 走看看