1. 程式人生 > 其它 >WebSocket 基礎與應用系列(一)—— 抓個 WebSocket 的包

WebSocket 基礎與應用系列(一)—— 抓個 WebSocket 的包

https://www.nowcoder.com/practice/f9f78ca89ad643c99701a7142bd59f5d?tpId=13&tqId=2273171&ru=%2Fpractice%2F75e878df47f24fdc9dc3e400ec6058ca&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D13

描述

給定單向連結串列的頭指標和一個要刪除的節點的值,定義一個函式刪除該節點。返回刪除後的連結串列的頭節點。

1.此題對比原題有改動 2.題目保證連結串列中節點的值互不相同 3.該題只會輸出返回的連結串列和結果做對比,所以若使用 C 或 C++ 語言,你不需要 free 或 delete 被刪除的節點   資料範圍: 0<=連結串列節點值<=10000 0<=連結串列長度<=10000

示例1

輸入:
{2,5,1,9},5
返回值:
{2,1,9}
說明:
給定你連結串列中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該連結串列應變為 2 -> 1 -> 9   

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 
*/ public class Solution { /** * 程式碼中的類名、方法名、引數名已經指定,請勿修改,直接返回方法規定的值即可 * * * @param head ListNode類 * @param val int整型 * @return ListNode類 */ public ListNode deleteNode (ListNode head, int val) { // write code here if(head==null)return null;
if(head.val==val) return head.next; ListNode pre=head; ListNode cur=head.next; while(cur!=null&&cur.val!=val) { pre=cur; cur=cur.next; } if(pre.next!=null) { pre.next=cur.next; } return head; } }

1.判斷要刪除的節點是不是空或者第一個節點

2.然後找到要刪除的節點

3.迴圈結束後會有兩種情況

  1.找到最後沒找到

  2.找到了要刪除的節點

4.判斷如果是找到了刪除的節點再改變指向