Foldable Binary Trees

来源:互联网 发布:单片机独立按键电路图 编辑:程序博客网 时间:2024/06/06 00:43
package tree;public class FoldableBinaryTrees {/** * Consider the below trees:(a) and (b) can be folded.(c) and (d) cannot be folded.(a)       10     /    \    7      15     \    /      9  11(b)        10       /  \      7    15     /      \    9       11(c)        10       /  \      7   15     /    /    5   11(d)         10       /   \      7     15    /  \    /   9   10  12 * 判断二叉树是否是可折叠的 * @param args */public static boolean isfoldable(TreeNode root){if(root==null) return false;if(root.left==null&&root.right==null) return true;return isfoldablecore(root.left,root.right);} private static boolean isfoldablecore(TreeNode left, TreeNode right) {if((left==null&&right==null)) return true;if((left==null&&right!=null)||(right==null&&left!=null)) return false;return isfoldablecore(left.left, right.right)&&isfoldablecore(left.right, right.left);}public static void main(String[] args) {TreeNode root = new TreeNode(10);root.left = new TreeNode(7);root.right = new TreeNode(15);root.left.left = new TreeNode(9);root.right.right = new TreeNode(11);System.out.println(isfoldable(root));}}

0 0
原创粉丝点击