【Python】バイナリツリーの作成


  Likou などのプラットフォームでは、バイナリ ツリーが事前定義されていることがよくありますが、Python のインタビューでは、バイナリ ツリーを自分で作成する必要がある場合があります。また、バイナリ ツリーをインスタンス化すると、その後のデバッグがより便利になります。

1. ツリーノードを定義する

バイナリ ツリー ノードは、ビルドする前に定義する必要があります。

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

val、left、right にはデフォルト値が与えられていることに注意してください。この時点で、TreeNode() を呼び出すと、値 0 のルート ノードが返されます。バイナリ ツリーを形成するには、これらの孤立したノードを接続する必要があります。

2. ツリーノードの初期化

ツリーノードの値を初期化します。

node1 = TreeNode(5)
node2 = TreeNode(3)
node3 = TreeNode(7)
node4 = TreeNode(1)
node5 = TreeNode(4)
node6 = TreeNode(6)
node7 = TreeNode(9)

初期化後、これらのノードの値はデフォルトの 0 ではなくなりますが、依然として分離されたノードであるため、接続する必要があります。

3. ツリーノードを接続する

ツリー ノードを接続し、ルート ノードのルートを定義します。

node1.left = node2
node1.right = node3
node2.left = node4
node2.right = node5
node3.left = node6
node3.right = node7
root = node1

この時点で、Python を使用したバイナリ ツリーの構築が完了しました。
二分木
さらに、最初にリーフ ノードを作成し、次にその 2 つを接続する親ノードを作成することもできます。

node6 = TreeNode(6)
node7 = TreeNode(9)
node3 = TreeNode(7, node6, node7)

4. 完全なコード

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

node4 = TreeNode(1)
node5 = TreeNode(4)
node6 = TreeNode(6)
node7 = TreeNode(9)
node2 = TreeNode(3, node4, node5)
node3 = TreeNode(7, node6, node7)
node1 = TreeNode(5, node2, node3)
root = node1

おすすめ

転載: blog.csdn.net/weixin_44844635/article/details/131663032