Exemple #1
0
        public MyLinkedList SumLists(Node HeadFirst, Node HeadSecond)
        {
            if (HeadFirst == null && HeadSecond == null)
            {
                return(null);
            }
            MyLinkedList list = new MyLinkedList(null);
            int          sum = 0; int overflow = 0;

            while (HeadFirst != null && HeadSecond != null)
            {
                sum = HeadFirst.Value + HeadSecond.Value + overflow;
                list.AddNodeAtEnd(new Node(null, sum % 10));
                overflow   = sum / 10;
                HeadFirst  = HeadFirst.Next;
                HeadSecond = HeadSecond.Next;
            }

            if (HeadFirst == null)
            {
                while (HeadSecond != null)
                {
                    sum = overflow + HeadSecond.Value;
                    list.AddNodeAtEnd(new Node(null, sum % 10));
                    overflow   = sum / 10;
                    HeadSecond = HeadSecond.Next;
                }
            }
            if (HeadSecond == null)
            {
                while (HeadFirst != null)
                {
                    sum = overflow + HeadFirst.Value;
                    list.AddNodeAtEnd(new Node(null, sum % 10));
                    overflow  = sum / 10;
                    HeadFirst = HeadFirst.Next;
                }
            }
            return(list);
        }