闲来无事玩玩python,发现和c、perl有很多相近之处,基本语法很容易就掌握了,刚好看到一算法题,就拿来练练手。
题目:输入一个整数和一棵二元树。
从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
例如 输入整数22和如下二元树
10
/ \
5 12
/ \
4 7
则打印出两条路径:10, 12和10, 5, 7。
class Treenode:
def __init__( self, data ):
self._data = data
self._left = None
self._right = None
def __str__( self ):
return str(self._data)
class Tree:
def __init__( self ):
self._rootNode = None
def insertNode( self, value ):
if self._rootNode is None:
self._rootNode = Treenode(value)
else:
self.insertNodeHelper(self._rootNode, value)
def insertNodeHelper( self, node, value ):
if value < node._data:
if node._left