public void NoNodes_Nothing()
        {
            Node node = null;

            node = DeleteNodeInLinkedListWithReturn.Delete(node, 0);
            Assert.IsNull(node);
        }
        public void OnlyOneNode_Deleted()
        {
            Node node = new Node()
            {
                value = 1,
                next  = null,
            };

            node = DeleteNodeInLinkedListWithReturn.Delete(node, 1);
            Assert.IsNull(node);
        }
        public void FirstNode_Deleted()
        {
            Node node = new Node()
            {
                value = 1,
                next  = new Node()
                {
                    value = 2,
                    next  = null,
                },
            };

            node = DeleteNodeInLinkedListWithReturn.Delete(node, 1);
            Assert.AreEqual(node.value, 2);
            Assert.AreEqual(node.next, null);
        }
        public void RepeatedNodeWith3_Deleted()
        {
            Node node = new Node()
            {
                value = 1,
                next  = new Node()
                {
                    value = 1,
                    next  = new Node()
                    {
                        value = 1,
                        next  = null,
                    },
                },
            };

            node = DeleteNodeInLinkedListWithReturn.Delete(node, 1);
            Assert.AreEqual(node.value, 1);
            Assert.AreEqual(node.next.value, 1);
            Assert.AreEqual(node.next.next, null);
        }