python二叉树左边数添加元素即节点值打印

代码跑不通,请定位下问题,要求在此代码基础上可以正确添加并打印出添加的节点值。


class TreeNode:
    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right
#创建树类
class Solution:
    def __init__(self,val=None):
        self.root = TreeNode(val)
    #创建左树
    def insertLeft(self, item):
        node = TreeNode(item)
        if self.root.left is None:
            self.root.left = node
        else:
            t = node
            t.left = self.root.left
            self.root.left = t

    def getLeftchild(self):
        return self.root.left

    def getRootVal(self):
        return self.root.val

if __name__ == '__main__':
    b = Solution()
    b.insertLeft('a')
    print(b.getRootVal())

```

你代码没什么问题,只是你 print(b.getRootVal()) 打印的是根节点的值。你根节点的val没有赋值。
b.insertLeft('a')是添加左节点,要打印左节点的值应该是 print(b.getLeftchild().val)

class TreeNode:
    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right
#创建树类
class Solution:
    def __init__(self,val=None):
        self.root = TreeNode(val)
    #创建左树
    def insertLeft(self, item):
        node = TreeNode(item)
        if self.root.left is None:
            self.root.left = node
        else:
            t = node
            t.left = self.root.left
            self.root.left = t
    def getLeftchild(self):
        return self.root.left
    def getRootVal(self):
        return self.root.val
if __name__ == '__main__':
    b = Solution("根节点的值")
    b.insertLeft("左节点的值")
    print(b.getRootVal())
    print(b.getLeftchild().val)

img