我正在寻找以下问题的最佳解决方案。
给定一棵二叉树,我们需要使用前序遍历从树中生成一个链表。还要写一个测试用例来检查它是否正确。
如果您可以提供特定于生成链表和测试的解决方案。此外,该解决方案可以实现的最佳复杂性是什么。
我尝试过这样的事情:
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;
}