示例#1
0
        public void TestCycleStartNode()
        {
            var list = BuildLinkedList();

            var curr  = list;
            var start = list;

            //Find the last node
            while (curr.Next != null)
            {
                curr = curr.Next;
            }

            //Find an arbitary node
            for (int i = 0; i < 9; i++)
            {
                start = start.Next;
                if (start.Data == 5)
                {
                    break;
                }
            }

            // Create a cycle
            curr.Next = start;

            var node = LinkedListProblems.FindStartNodeOfCircularList(list);

            Assert.AreEqual(start.Data, node.Data);
        }
示例#2
0
        public void TestNoCycle()
        {
            var list = BuildLinkedList();
            var node = LinkedListProblems.FindStartNodeOfCircularList(list);

            Assert.AreEqual(null, node);
        }