Пример #1
0
        public void InvertTreeTest()
        {
            var      s = new Solution();
            TreeNode root, expected;

            root     = TreeNode.Build(4, 2, 7, 1, 3, 6, 9);
            expected = TreeNode.Build(4, 7, 2, 9, 6, 3, 1);
            Assert.Equal(expected, s.InvertTree(root));
        }
Пример #2
0
        public void SearchBSTTest()
        {
            var      s = new Solution();
            TreeNode root, expected;
            int      val;

            root     = TreeNode.Build(4, 2, 7, 1, 3);
            val      = 2;
            expected = TreeNode.Build(2, 1, 3);
            Assert.Equal(expected, s.SearchBST(root, val));
        }
Пример #3
0
        public void BstFromPreorderTest()
        {
            var s = new Solution();

            int[]    preorder;
            TreeNode expected;

            preorder = new int[] { 8, 5, 1, 7, 10, 12 };
            expected = TreeNode.Build(8, 5, 10, 1, 7, null, 12);
            Assert.Equal(expected, s.BstFromPreorder(preorder));
        }
Пример #4
0
        public void IsCousinsTest()
        {
            var      s = new Solution();
            TreeNode root;

            root = TreeNode.Build(1, 2, 3, 4);
            Assert.False(s.IsCousins(root, 4, 3));

            root = TreeNode.Build(1, 2, 3, null, 4, null, 5);
            Assert.True(s.IsCousins(root, 5, 4));

            root = TreeNode.Build(1, 2, 3, null, 4);
            Assert.False(s.IsCousins(root, 2, 3));

            root = TreeNode.Build(1, 2, 3, null, null, null, 4, 5);
            Assert.False(s.IsCousins(root, 1, 2));
        }
Пример #5
0
        public void ZigzagLevelOrderTest()
        {
            var                  s = new Solution();
            TreeNode             root;
            IList <IList <int> > expected;

            root     = TreeNode.Build(3, 9, 20, null, null, 15, 7);
            expected = new List <IList <int> >()
            {
                new List <int> {
                    3
                },
                new List <int> {
                    20, 9
                },
                new List <int> {
                    15, 7
                },
            };
            Assert.Equal(expected, s.ZigzagLevelOrder(root));
        }
Пример #6
0
        public void DiameterOfBinaryTreeTest()
        {
            var      s = new Solution();
            TreeNode head;

            var leftNode = new TreeNode(2, 4, 5);

            head = new TreeNode(1, leftNode, new TreeNode(3));
            Assert.Equal(3, s.DiameterOfBinaryTree(head));

            head = new TreeNode(1);
            Assert.Equal(0, s.DiameterOfBinaryTree(head));

            head = new TreeNode(1, new TreeNode(2), null);
            Assert.Equal(1, s.DiameterOfBinaryTree(head));

            head = TreeNode.Build(new int?[] {
                4, -7, -3, null, null, -9, -3, 9, -7, -4, null, 6, null, -6, -6, null,
                null, 0, 6, 5, null, 9, null, null, -1, -4, null, null, null, -2
            });
            Assert.Equal(8, s.DiameterOfBinaryTree(head));
        }
Пример #7
0
        public void LevelOrderBottomTest()
        {
            var                s = new Solution();
            TreeNode           root;
            List <List <int> > expected;

            root     = null;
            expected = new List <List <int> >();
            Assert.Equal(expected, s.LevelOrderBottom(root));

            root     = TreeNode.Build(3, 9, 20, null, null, 15, 7);
            expected = new List <List <int> > {
                new List <int> {
                    15, 7
                },
                new List <int> {
                    9, 20
                },
                new List <int> {
                    3
                }
            };
            Assert.Equal(expected, s.LevelOrderBottom(root));
        }