public void PrintLevel(Node head, ref Queue<Node> queue) { while (head != null && !head.IsVisited) { Console.Write(" " + head.data); head.IsVisited = true; if (head.Child != null) { queue.Enqueue(head.Child); } head = head.Next; } }
public void AddNodes(int level, List<int> nodes) { Node currentNode = null; List<Node> tmp = new List<Node>(); foreach (var node in nodes) { if (currentNode == null) { currentNode = new Node() {data = node}; } else { currentNode.Next = new Node(){data = node}; currentNode = currentNode.Next; } tmp.Add(currentNode); } if (this.LisNodes.ContainsKey(level)) { this.LisNodes[level] = this.LisNodes[level].Union(tmp); } else { this.LisNodes.Add(level, tmp); } }