查看一颗二叉树的每个节点的值是否都是其左右两个孩子节点值的和
2014-06-30 12:51
281 查看
package tree; public class SumProperty { /** * 查看一颗二叉树的每个节点的值是否都是其左右两个孩子节点值的和 * 当有一个孩子节点为空时,节点值为0 * @param args */ public static boolean issumproperty(TreeNode root){ if(root==null||(root.left==null&&root.right==null)){//这个条件不能落下 return true; } if(root.value==getvalue(root.left)+getvalue(root.right)){ return issumproperty(root.left)&&issumproperty(root.right); } return false; } private static int getvalue(TreeNode root) { if(root==null) return 0; return root.value; } public static void main(String[] args) { TreeNode root = new TreeNode(10); root.left = new TreeNode(5); root.right = new TreeNode(2); root.left.left = new TreeNode(3); root.left.right = new TreeNode(5); root.right.left = new TreeNode(2); System.out.println(issumproperty(root)); } }
相关文章推荐
- 将任意一颗二叉树转变为每一个节点都是另外两个孩子节点的和
- 若用链表存储一棵二叉树时,每个节点除数据域外,还有指向左孩子和右孩子的两个指针,在这种存储结构中,n歌节点的二叉树共有2N个指针域,其中有N-1个指针域存放了地址,有N+1个指针是空指针。
- 把二叉树中每个节点左右孩子位置交换。
- 查看一颗二叉树从根到叶子路径的节点和是否等于某个给定的数
- 写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
- 写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。
- 求解一颗二叉树中两个叶子节点最长的路径
- [阿里巴巴2015校园招聘]写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。 .
- 二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
- 假设有一颗二叉树,已知这棵树的节点上不均匀的分布了若干石头,石头数跟这棵二叉树的节点数相同,石头只可以在子节点和父节点之间进行搬运,每次只能搬运一颗石头。请问如何以最少的步骤将石头搬运均匀,使得每个节
- 【二叉树12】求一颗二叉树中两个节点的最近公共父节点
- 写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
- 编写一个递归算法,实现将一颗二叉树的左右孩子互换。
- 给定一颗二叉树,以及其中的两个node(地址均非空),要求给出这两个node的一个公共父节点,使得这个父节点与两个节点的路径之和最小。
- 假设有一颗二叉树,已知这棵树的节点上不均匀的分布了若干石头,石头数跟这棵二叉树的节点数相同,石头只可以在子节点和父节点之间进行搬运,每次只能搬运一颗石头。请问如何以最少的步骤将石头搬运均匀,使得每个节
- 一颗普通的二叉树,如何寻找两个节点的最低公共祖先(发现的一个与算法无关的引用问题)
- 6.33③ 假定用两个一维数组L[1..n]和R[1..n]作为 有n个结点的二叉树的存储结构, L[i]和R[i]分别指 示结点i的左孩子和右孩子,0表示空。试写一个算法 判别结点u是否为结点v的
- 二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
- 求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数,比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,
- 给一个二叉树,每个节点都是正或负整数,如何找到一个子树,它所有节点的和最大?