public static void CalculateDiameter(TreeNode root) { int diameter = TreeUtility.Diameter(root); //int diameter = TreeUtility.DiameterOptimized(root); Console.WriteLine("The diameter of the given tree is: " + diameter); }
public static void CalculateHeight(TreeNode root) { //int height = TreeUtility.TreeHeight(root); int height = TreeUtility.HeightUsingLevelOrder(root); Console.WriteLine("The height of the tree is: " + height); }
public static void TreeView(TreeNode root) { //Console.WriteLine("The left view of the tree is: "); //TreeUtility.LeftView(root); //Console.WriteLine("\n\nThe right view of the tree is: "); //TreeUtility.RightView(root); Console.WriteLine("\n\nThe top view of the tree is: "); TreeUtility.TopView(root); Console.WriteLine("\n\nThe bottom view of the tree is: "); TreeUtility.BottomView(root); }
public static void HasPathSum(TreeNode root) { int sum = 10; var res = TreeUtility.HasPathSum(root, sum); if (res == true) { Console.WriteLine("Path exists with the given sum " + sum); } else { Console.WriteLine("Path donot exist with the given sum"); } }
public static void FindElement(TreeNode root) { int key = 20; Console.WriteLine("\n \nSearching for the key:" + key); if (TreeUtility.FindElement(root, key)) { Console.WriteLine("A TreeNode with the given key:" + key + " exists!"); } else { Console.WriteLine("A TreeNode with the given key:" + key + " donot exist!"); } }
private static bool IsBalanced(TreeNode root) { if (root == null) { return(true); } int leftSubTreeHeight = TreeUtility.TreeHeight(root.Left); int rightSubTreeHeight = TreeUtility.TreeHeight(root.Right); int diff = Math.Abs(leftSubTreeHeight - rightSubTreeHeight); if (diff <= 1 && IsBalanced(root.Left) && IsBalanced(root.Right)) { return(true); } return(false); }