代码跑不通,请定位下问题,要求在此代码基础上可以正确添加并打印出添加的节点值。
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)