コード例 #1
0
        public void AddAtIndex(int index, int val)
        {
            LinkedListNodePractice newNode = new LinkedListNodePractice(val);

            if (index == 0)
            {
                //newNode.next = head;
                //head = newNode;
                //or
                AddFirst(val);
            }
            else
            {
                var curr = head;
                LinkedListNodePractice prev = null;
                int i = 0;
                while (curr != null)
                {
                    if (i == index)
                    {
                        prev.next    = newNode;
                        newNode.next = curr;
                        break;
                    }
                    prev = curr;
                    curr = curr.next;
                    i++;
                }
            }
        }
コード例 #2
0
        public void RemoveLast()
        {
            var curr = head;
            LinkedListNodePractice prev = null;

            while (curr.next != null)
            {
                prev = curr;
                curr = curr.next;
            }
            prev.next = null;
        }
コード例 #3
0
        public void Reverse()
        {
            var curr = head;
            LinkedListNodePractice prev = null;

            while (curr != null)
            {
                var next = curr.next;
                curr.next = prev;
                prev      = curr;
                curr      = next;
            }
            head = prev;
        }
コード例 #4
0
        public void AddFirst(int val)
        {
            LinkedListNodePractice newNode = new LinkedListNodePractice(val);

            if (head == null)
            {
                head = newNode;
            }
            else
            {
                newNode.next = head;
                head         = newNode;
                //Another possible way
                //var oldHead = head;
                //head = newNode;
                //newNode.next = oldHead;
            }
        }
コード例 #5
0
        public void AddLast(int val)
        {
            LinkedListNodePractice newNode = new LinkedListNodePractice(val);

            if (head == null)
            {
                head = newNode;
            }
            else
            {
                var curr = head;
                while (curr.next != null)
                {
                    curr = curr.next;
                }
                curr.next = newNode;
            }
        }
コード例 #6
0
        public void RemoveAtIndex(int index)
        {
            if (index == 0)
            {
                head = head.next;
                return;
            }
            var curr = head;
            LinkedListNodePractice prev = null;
            int i = 0;

            while (curr != null)
            {
                if (i == index)
                {
                    prev.next = curr.next;
                    curr.next = null;
                    break;
                }
                prev = curr;
                curr = curr.next;
                i++;
            }
        }
コード例 #7
0
 public void RemoveFirst()
 {
     head = head.next;
 }