私はデータ構造と再帰の概念が初めてです。私はなぜこのコンセプトで再帰を使用できるのかを理解するのに苦労しています。私はこのコードをフォーラムで見つけました。このコンセプトは本当に理解できませんでした。 2 1 3 4の単純なケースの場合、いずれかが反復ステップを説明できる場合は、私のために大きく評価されます。 https://www.hackerrank.com/challenges/insert-a-node-into-a-sorted-doubly-linked-listソートされたダブルリンクリスト挿入の再帰
Node SortedInsert(Node head,int data) {
Node n = new Node();
n.data = data;
if (head == null) {
return n;
}
else if (data <= head.data) {
n.next = head;
head.prev = n;
return n;
}
else {
Node rest = SortedInsert(head.next, data);
head.next = rest;
rest.prev = head;
return head;
}
}
あなたの脳からこのコードを消去し、決してそれを再訪しないでください。これは狂ったようにリークし、長いリストにスタックオーバーフローが発生する危険性があります。 –
アダレンに感謝します。私はあなたの応答に感謝します。 – Kay