private void TryLinks(TrieNode node, TrieNode node2, Dictionary <TrieNode, TrieNode> links) { foreach (var item in node.m_values) { if (node2 == null) { var nd = _first[item.Key]; if (nd == null) { continue; } links[item.Value] = nd; TryLinks(item.Value, nd, links); } else { TrieNode tn; if (node2.TryGetValue(item.Key, out tn)) { links[item.Value] = tn; TryLinks(item.Value, tn, links); } } } }
private void TryLinks(TrieNode node, TrieNode node2, Dictionary <TrieNode, TrieNode> links) { foreach (var item in node.m_values) { TrieNode tn = null; if (node2 == null) { tn = _first[item.Key]; if (tn != null) { links[item.Value] = tn; } } else if (node2.TryGetValue(item.Key, out tn)) { links[item.Value] = tn; } TryLinks(item.Value, tn, links); } }