JavaScriptの単一リンクリストから要素を削除します
このような単一リンクリストがあるとします-
const list = { value: 1, next: { value: 2, next: { value: 3, next: { value: 4, next: { value: 5, next: { value: 6, next: { value: 7, next: null } } } } } } };
最初の引数として1つのリストを取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。
関数は、リストにその値を持つノードが存在するかどうかを検索する必要があります。存在する場合、関数はリストからノードを削除する必要があります。
例
このためのコードは-
になりますconst list = { value: 1, next: { value: 2, next: { value: 3, next: { value: 4, next: { value: 5, next: { value: 6, next: { value: 7, next: null } } } } } } }; const recursiveTransform = (list = {}) => { if(list && list['next']){ list['value'] = list['next']['value']; list['next'] = list['next']['next']; return recursiveTransform(list['next']); }else{ return true; }; } const removeNode = (list = {}, val, curr = list) => { // end reached and item not found if(!list){ return false; } if(list['value'] !== val){ return removeNode(list['next'], val, list); }; return recursiveTransform(list); }; console.log(removeNode(list, 3)); console.log(JSON.stringify(list, undefined, 4));
出力
そして、コンソールの出力は-
になりますtrue { "value": 1, "next": { "value": 2, "next": { "value": 4, "next": { "value": 6, "next": { "value": 7, "next": null } } } } }
-
Javascriptの循環としての単一リンクリスト
単一リンクリストでは、最後のノードの次のポインタが最初のノードを指します。
-
Javascriptを使用して二重リンクリストから要素を削除する
リンクリストでは、要素の削除は非常に簡単です。削除したいノードを取り除く必要があります。つまり、その参照を失います。考慮する必要がある3つのケースがあります- headから要素を削除する:この場合、head =head.nextを割り当てるだけで、次の要素から前のリンクを削除できます。このようにして、最初の要素の参照を失います。そして、頭が2番目の要素を指し始めます。 テールから要素を削除する:この場合、最後から2番目のノードのnode.nextをnullに割り当てるだけで、リストから最後の要素を削除できます。また、現在のノードを指すようにテールを更新します。 中間から要素を削除する:これ