private SLNode Add(SLNode node, int data) { if (node == null) { return(new SLNode(data)); } node.Next = Add(node.Next, data); return(node); }
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()); }
private SLNode FindNode(SLNode node, int data) { if (node == null) { return(null); } if (node.Data == data) { return(node); } else { return(FindNode(node.Next, data)); } }
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); }
public void Add(int data) { root = Add(root, data); }