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                 
  • 相关阅读:
    插入排序
    JavaMail学习笔记
    Struts2的工作原理
    我的快速排序
    截取字符串,只截取前N个字节的字符
    修改MyEclipse8.6中的Servlet.java模板
    Java类装载的过程及原理介绍
    cmd检查jdk的版本
    快速排序
    flash 侦测人的面部
  • 原文地址:https://www.cnblogs.com/David-Lin/p/7654373.html
Copyright © 2011-2022 走看看