主题:
给出二叉树和目标之和,判断该树上是否存在从根结点到叶结点的路径。 该路径上所有节点值的相加等于目标之和。 返回真或假。
1 .了解二叉树的遍历框架
说到二叉树的扫描框架,很多人的脑海里马上跳出来的是前序、中序、后序的扫描。 但是,机械地记住前前后后的遍历没有什么意义。 我们首先需要掌握的是二叉树的递归思想
递归有两大点:
反复调用自己
结束条件
在二叉树结构上进行递归时,这两大要点如下。
递归地调用自己的两个子树
在叶节点处结束递归
调用子树的部分是重点。 为了递归地调用自身,需要保证用子树求解与原来的问题相同的子问题。 结束条件最后可以作为细节来考虑。
Booleanhaspathsum(treenoderoot,int sum ) if ) root==null { return false; } if (root.left==null root.right==null ) { return root.value==sum; } int target=sum-root.value; returnhaspathsum(root.left,target )|haspathsum (root.right,target ); () ) ) ) )。