擅长:python、mysql、java
<p>另一个答案。与您和Todd Tao的解决方案类似,它实现了DFS。但是,一旦它完成对分支的探索失败,它将继续下一个分支。你的代码正在搜索最左边的分支。在</p>
<pre><code>class WNode(object):
def __init__(self,w):
self._w=w
self._content=[]
def find(self, x):
if self._w == x:
return self
else:
y = None
for i in self._content:
y = i.find(x)
if y:
break
return y
return None
if __name__ == '__main__':
r = WNode(1)
r._content = [WNode(2), WNode(3), WNode(4)]
for i in xrange(1, 6):
print('find({}) = {}'.format(i, r.find(i)))
</code></pre>