public static void FindLcaTest() { var root = TreeUtils.CreateSampleTreeWithLinkToParents(); Console.WriteLine($"16 and 810 is " + BinaryTreeLca.FindLcaWithParentLinks(root, root.left.left, root.right.right)); Console.WriteLine($"16 and 58 is " + BinaryTreeLca.FindLcaWithParentLinks(root, root.left.left, root.left.right)); }
public static void FindPathTest() { var node1 = new TreeNode(6); var node2 = new TreeNode(8); var node3 = new TreeNode(10); var node4 = new TreeNode(16); var node5 = new TreeNode(58); var node6 = new TreeNode(810); node1.left = node2; node1.right = node3; node2.left = node4; node2.right = node5; node3.left = node6; var root = node1; var path = BinaryTreeLca.FindPath(root, 810); foreach (var node in path) { Console.Write(node.data + " , "); } Console.WriteLine(); path = BinaryTreeLca.FindPath(root, 58); foreach (var node in path) { Console.Write(node.data + " , "); } Console.WriteLine(); path = BinaryTreeLca.FindPath(root, 8); foreach (var node in path) { Console.Write(node.data + " , "); } Console.WriteLine(); path = BinaryTreeLca.FindPath(root, 6); foreach (var node in path) { Console.Write(node.data + " , "); } Console.WriteLine(); path = BinaryTreeLca.FindPath(root, 77); if (path != null) { foreach (var node in path) { Console.Write(node.data + " , "); } } else { Console.WriteLine("No Path Exists."); } Console.WriteLine(); }