本篇的主要内容:
- Python与C++引用的不同(个人理解)
在用Python写建二叉树的代码的时候遇到了这个问题,原因就是把Python的“引用”与C++的“引用”搞混了,这两种语言中都有“引用”名词,虽然大部分时候很像,其实还是有区别的。这里记录一下,注意,这里只是我自己的一点个人理解,在找到更好的理解之前,先这样理解吧!
例子,这是我的两段根据先序序列创建二叉树的代码:
# 正确
pos = 0
def create(seq):
global pos
ch = seq[pos]
pos += 1
if ch == '#':
return None
else:
temp = TreeNode(ch)
temp.left = create(seq)
temp.right = create(seq)
return temp
seq = "abd###ce###"
root = create(seq)
还有这个:
# 错误
def create(root):
global pos
if(seq[pos]=='#'):
root = None
pos += 1
return
root = TreeNode(seq[pos])
pos += 1