次の質問に対する最良の解決策を探しています。
バイナリ ツリーが与えられたので、プレオーダー トラバーサルを使用して、ツリーからリンク リストを生成する必要があります。また、それが正しいかどうかを確認するテスト ケースを作成します。
リンクされたリストの生成とテストに固有のソリューションを提供できる場合。また、このソリューションで達成できる最高の複雑さは何でしょう。
私はこのようなことを試しました:
public void TraversePreOrder(TreeNode node, LinkedListNode head){
if(node != null) return;
//Insert current node into linkedList
head = insertNodeIntoLinkedList(head, node.data);
PreOrder(node.left, head);
PreOrder(node.right, head);
}
public LinkedListNode insertNodeIntoLinkedList(LinkedListNode head, int data){
LinkedListNode newNode = new LinkedListNode(data);
if(head == null) {
head = newNode;
return head;
}
Node currentNode = head;
while(currentNode.next != null){
currentNode = currentNode.next;
}
currentNode.next = newNode;
return head;
}