コード例 #1
0
 private SLNode Add(SLNode node, int data)
 {
     if (node == null)
     {
         return(new SLNode(data));
     }
     node.Next = Add(node.Next, data);
     return(node);
 }
コード例 #2
0
        static public int[] ToArray(SLNode node)
        {
            SLNode     curr = node;
            List <int> l    = new List <int>();

            while (curr != null)
            {
                l.Add(curr.Data);
                curr = curr.Next;
            }
            return(l.ToArray());
        }
コード例 #3
0
 private SLNode FindNode(SLNode node, int data)
 {
     if (node == null)
     {
         return(null);
     }
     if (node.Data == data)
     {
         return(node);
     }
     else
     {
         return(FindNode(node.Next, data));
     }
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: mgalletti/HackerRank
        static SinglyLinkedList SumLists(SinglyLinkedList l1, SinglyLinkedList l2)
        {
            SinglyLinkedList res = new SinglyLinkedList();
            SLNode           n1  = l1.GetRoot();
            SLNode           n2  = l2.GetRoot();

            int mod = 0;

            while (n1 != null || n2 != null)
            {
                int d1 = 0;
                int d2 = 0;
                if (n1 != null)
                {
                    d1 = n1.Data;
                }
                if (n2 != null)
                {
                    d2 = n2.Data;
                }
                int sum = d1 + d2 + mod;
                mod = sum / 10;
                res.Add(sum - mod * 10);

                if (n1 != null)
                {
                    n1 = n1.Next;
                }
                if (n2 != null)
                {
                    n2 = n2.Next;
                }
            }
            if (mod > 0)
            {
                res.Add(mod);
            }
            return(res);
        }
コード例 #5
0
 public void Add(int data)
 {
     root = Add(root, data);
 }