2

次の質問に対する最良の解決策を探しています。

バイナリ ツリーが与えられたので、プレオーダー トラバーサルを使用して、ツリーからリンク リストを生成する必要があります。また、それが正しいかどうかを確認するテスト ケースを作成します。

リンクされたリストの生成とテストに固有のソリューションを提供できる場合。また、このソリューションで達成できる最高の複雑さは何でしょう。

私はこのようなことを試しました:

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;

}     
4

1 に答える 1