Всем доброго дня! Есть класс который создает ноду дерева!
from dataclasses import dataclass
from typing import Optional
@dataclass
class BinaryTreeNode:
val: int
left: Optional["BinaryTreeNode"] = None
right: Optional["BinaryTreeNode"] = None
def __repr__(self):
return f"<BinaryTreeNode[{self.val}]>"
И есть словарь с нодами типа
{758125: <BinaryTreeNode[758125]>, 758124: <BinaryTreeNode[758124]>, 758117: <BinaryTreeNode[758117]>, 758123: <BinaryTreeNode[758123]>, 758116: <BinaryTreeNode[758116]>, 758120: <BinaryTreeNode[758120]>, 758122: <BinaryTreeNode[758122]>, 758115: <BinaryTreeNode[758115]>, 758118: <BinaryTreeNode[758118]>, 758119: <BinaryTreeNode[758119]>, 758121: <BinaryTreeNode[758121]>}
Подскажите как можно построить дерево по этим нодам! root = BinaryTreeNode[758125]>,
в каждом объекте есть ссыль на левое или правое плечо!
объект формировался из файлика
INFO:Visiting <BinaryTreeNode[758125]>
DEBUG:<BinaryTreeNode[758125]> left is not empty. Adding <BinaryTreeNode[758124]> to the queue
INFO:Visiting <BinaryTreeNode[758124]>
DEBUG:<BinaryTreeNode[758124]> left is not empty. Adding <BinaryTreeNode[758117]> to the queue
DEBUG:<BinaryTreeNode[758124]> right is not empty. Adding <BinaryTreeNode[758123]> to the queue
INFO:Visiting <BinaryTreeNode[758117]>
DEBUG:<BinaryTreeNode[758117]> left is not empty. Adding <BinaryTreeNode[758116]> to the queue
INFO:Visiting <BinaryTreeNode[758123]>
DEBUG:<BinaryTreeNode[758123]> left is not empty. Adding <BinaryTreeNode[758120]> to the queue
DEBUG:<BinaryTreeNode[758123]> right is not empty. Adding <BinaryTreeNode[758122]> to the queue
это типа принт самого дерева нужно его восстановить по файлу,
примеров много но везде почти выбор куда писать в зависимости от больше или меньше значение соответственно в лево или право!
в общем ступор пока!
За ранее спасибо!