Example #1
0
        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));
        }
Example #2
0
        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();
        }