コード例 #1
0
ファイル: 015.cs プロジェクト: haoxiaofan/data_structure
        public void Run()
        {
            for (int i = 1; i <= 10; i++)
            {
                Add(i);
            }
            {
                // var nodes = new List<Node015>();
                // var innerNode = _head;
                // while (innerNode != null)
                // {
                //     nodes.Add(innerNode);
                //     innerNode = innerNode.Next;
                // }

                // for (int i = nodes.Count - 1; i >= 0; i--)
                // {
                //     if (i == 0)
                //     {
                //         nodes[i].Next = null;
                //         break;
                //     }

                //     nodes[i].Next = nodes[i - 1];
                // }
                // _head = nodes[nodes.Count - 1];
            }
            {
                if (_head == null)
                {
                    return;
                }

                Node015 reverseHead = null;
                Node015 currentNode = _head;
                Node015 prevNode    = null;
                while (currentNode != null)
                {
                    var nextNode = currentNode.Next;
                    if (nextNode == null)
                    {
                        reverseHead = currentNode;
                    }
                    currentNode.Next = prevNode;
                    prevNode         = currentNode;
                    currentNode      = nextNode;
                }
            }
        }
コード例 #2
0
ファイル: 015.cs プロジェクト: haoxiaofan/data_structure
        internal void Add(Int32 data)
        {
            var newNode = new Node015
            {
                Data = data
            };

            if (_head == null)
            {
                _head = newNode;
                return;
            }

            var innerNode = _head;

            while (innerNode.Next != null)
            {
                innerNode = innerNode.Next;
            }

            innerNode.Next = newNode;
        }