Beispiel #1
0
        public void MergeTreesTests()
        {
            MergeTwoBinaryTrees obj = new MergeTwoBinaryTrees();

            ////    [1,3,2,5]
            ////[2,1,3,null,4,null,7]

            TreeNode node1 = new TreeNode(1)
            {
                left = new TreeNode(3)
                {
                    left = new TreeNode(5)
                }, right = new TreeNode(2)
            };

            TreeNode node2 = new TreeNode(2)
            {
                left = new TreeNode(1)
                {
                    right = new TreeNode(4)
                }, right = new TreeNode(3)
                {
                    right = new TreeNode(7)
                }
            };

            obj.MergeTrees(node1, node2);
        }
Beispiel #2
0
        public void Test_MergeTrees()
        {
            // arrange
            var t1Root  = new TreeNode(1);
            var t1Node2 = new TreeNode(3);
            var t1Node3 = new TreeNode(5);
            var t1Node4 = new TreeNode(2);

            t1Root.Left  = t1Node2;
            t1Node2.Left = t1Node3;
            t1Root.Right = t1Node4;

            var t2Root  = new TreeNode(2);
            var t2Node2 = new TreeNode(1);
            var t2Node3 = new TreeNode(4);
            var t2Node4 = new TreeNode(3);
            var t2Node5 = new TreeNode(7);

            t2Root.Left   = t2Node2;
            t2Node2.Right = t2Node3;
            t2Root.Right  = t2Node4;
            t2Node4.Right = t2Node5;

            // act
            var mergedTree = MergeTwoBinaryTrees.MergeTrees(t1Root, t2Root);

            // assert
            var expected = new List <int?> {
                3, 4, 5, 4, 5, 7
            };
            var actual = MergeTwoBinaryTrees.ConvertToList(mergedTree, new List <int?>());

            Assert.Equal(expected, actual);
        }