java鍊錶ListNode

2021-07-25 16:38:41 字數 967 閱讀 8075

/**

* 描述:

刪除鍊錶中等於給定值val的所有節點。

樣例:給出鍊錶 1->2->3->3->4->5->3, 和 val = 3, 你需要返回刪除3之後的鍊錶:1->2->4->5。

分析:1.首先判斷head是不是空,為空就直接返回null

2.然後從head.next開始迴圈遍歷,刪除相等於val的元素

3.最後判斷head是否和val相等,若相等,head = head.next

(這裡最後判斷head是有原因的,因為head只是乙個節點,只要判斷一次,如果最先判斷head就比較麻煩,因為如果等於val,head就要發生變化)

這裡也體現出為什麼設計鍊錶的時候要空出乙個頭結點

package leetcode;

class listnode

}public

class n2deletelistnode ;

listnode listnode=buildlistnode(input);

head=listnode;

while(listnode!=null)

head=removeelements(head,3);

listnode=head;

while(listnode!=null)

}private

static listnode buildlistnode(int input)

else}}

return first;

}private

static listnode removeelements(listnode head,int val)

listnode p=head,q=head.nextnode;

while(q!=null)else

}if(head.val==val)

return head;

}}

ListNode鍊錶

listnode鍊錶此類裡面是 public class listnode 此類中包含了指向當前值的val,以及指向下乙個值的next 一 一直在糾結 給入的值是乙個陣列形式的值,但這個類中怎麼就只能存放當前值和下乙個值呢?原來 傳入的時候也是乙個值乙個值的傳入,而不是一次性的傳入了一鏈兒值。因此在...

c 建立列印線性鍊錶ListNode

刷題的時候,測試演算法的時候需要經常自己建立乙個線性鍊錶的例子,這裡自己造一次輪子,防止以後再造輪子.include include using std vector using std cout 定義鍊錶 struct listnode listnode getlistnode vector in...

Java 鍊錶

鍊錶結點 package com.darren.test.datastructure 鍊錶節點 author darren.zhang public class link public int getvalue public void setvalue int value public link g...