示例#1
0
        public void LC_0445_AddTwoNumbers()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 7, 2, 4, 3 });
            var linkList2 = ListNode.GenerateList(new int[] { 5, 6, 4 });

            Assert.True(new int[] { 7, 8, 0, 7 }.CompareArray(_s.AddTwoNumbers(linkList1, linkList2).ToList().ToArray()));
        }
示例#2
0
        public void LC_0328_OddEvenList()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 1, 2, 3, 4 });
            var linkList2 = ListNode.GenerateList(new int[] { 1, 2, 3, 4, 5 });

            Assert.True(new int[] { 1, 3, 2, 4 }.CompareArray(_s.OddEvenList(linkList1).ToList().ToArray()));
            Assert.True(new int[] { 1, 3, 5, 2, 4 }.CompareArray(_s.OddEvenList(linkList2).ToList().ToArray()));
        }
示例#3
0
        public void LC_0203_RemoveElements()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 1, 1 });
            var linkList2 = ListNode.GenerateList(new int[] { 1, 2, 3, 4 });

            Assert.True(_s.RemoveElements(linkList1, 1).ToArray().Length == 0);
            Assert.True(new int[] { 1, 2, 4 }.CompareArray(_s.RemoveElements(linkList2, 3).ToList().ToArray()));
        }
示例#4
0
        public void LC_0142_DetectCycle()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 3, 2, 0, -4 });

            linkList1.next.next.next.next = linkList1.next;
            var node = _s.DetectCycle(linkList1);

            Assert.True(node == linkList1.next);
        }
示例#5
0
        public void LC_0143_ReorderList()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 1, 2, 3, 4 });
            var linkList2 = ListNode.GenerateList(new int[] { 1, 2, 3, 4, 5 });

            _s.ReorderList(linkList1);
            _s.ReorderList(linkList2);
            Assert.True(new int[] { 1, 4, 2, 3 }.CompareArray(linkList1.ToList().ToArray()));
            Assert.True(new int[] { 1, 5, 2, 4, 3 }.CompareArray(linkList2.ToList().ToArray()));
        }
示例#6
0
        public void LC_0234_IsPalindrome()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 1 });
            var linkList2 = ListNode.GenerateList(new int[] { 1, 2, 1 });
            var linkList3 = ListNode.GenerateList(new int[] { 1, 2, 2, 1 });
            var linkList4 = ListNode.GenerateList(new int[] { 1, 2 });

            Assert.True(_s.IsPalindrome(null));
            Assert.True(_s.IsPalindrome(linkList1));
            Assert.True(_s.IsPalindrome(linkList2));
            Assert.True(_s.IsPalindrome(linkList3));
            Assert.False(_s.IsPalindrome(linkList4));
        }
示例#7
0
        public void LC_0147_InsertionSortList()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 4, 3, 1, 2 });
            var linkList2 = ListNode.GenerateList(new int[] { 1 });
            var linkList3 = ListNode.GenerateList(new int[] { 2, 1 });
            var linkList4 = ListNode.GenerateList(new int[] { 1, 2 });
            var linkList5 = ListNode.GenerateList(new int[] { 1, 1 });
            var linkList6 = ListNode.GenerateList(new int[] { 4, 19, 14, 5, -3, 1, 8, 5, 11, 15 });

            Assert.True(new int[] { 1, 2, 3, 4 }.CompareArray(_s.InsertionSortList(linkList1).ToList().ToArray()));
            Assert.True(new int[] { 1 }.CompareArray(_s.InsertionSortList(linkList2).ToList().ToArray()));
            Assert.True(new int[] { 1, 2 }.CompareArray(_s.InsertionSortList(linkList3).ToList().ToArray()));
            Assert.True(new int[] { 1, 2 }.CompareArray(_s.InsertionSortList(linkList4).ToList().ToArray()));
            Assert.True(new int[] { 1, 1 }.CompareArray(_s.InsertionSortList(linkList5).ToList().ToArray()));
            Assert.True(new int[] { -3, 1, 4, 5, 5, 8, 11, 14, 15, 19 }.CompareArray(_s.InsertionSortList(linkList6).ToList().ToArray()));
        }
示例#8
0
        public void LC_0160_GetIntersectionNode()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 4, 1, 8, 4, 5 });
            var linkList2 = new ListNode(5)
            {
                next = new ListNode(0)
                {
                    next = new ListNode(1)
                    {
                        next = linkList1.next.next
                    }
                }
            };

            Assert.True(linkList1.next.next == _s.GetIntersectionNode(linkList1, linkList2));
        }
示例#9
0
 public void LC_0109_SortedListToBST()
 {
     var linkList1 = ListNode.GenerateList(new int[] { -10, -3, 0, 5, 9 });
     var tree      = _s.SortedListToBST(linkList1);
 }
示例#10
0
        public void LC_0148_SortList()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 4, 3, 2, 1 });

            Assert.True(new int[] { 1, 2, 3, 4 }.CompareArray(_s.SortList(linkList1).ToList().ToArray()));
        }
示例#11
0
        public void LC_0206_ReverseList()
        {
            var linkList1 = ListNode.GenerateList(new int[] { 1, 2, 3, 4, 5 });

            Assert.True(new int[] { 5, 4, 3, 2, 1 }.CompareArray(_s.ReverseList(linkList1).ToList().ToArray()));
        }