C# znajdowanie węzła w drzewie

0

Mam taką strutkurę drzewa:
1
-2
-3
---4
---5
-6
---7

(2,3,6 to potomkowie 1) (4,5 to potomkowie 3) , 7 to potomek 6

Napisałem funkcję, którą chcę znajdować dowolny węzeł w drzewie po Id, przy czym każdy węzeł może mieć 0 lub dowolną inną liczbę potomków:
Dla tej struktury gdy chcę znaleźć wężeł nr. 7 funkcja zwraca mi null'a.

public static Participant FindParticipantById(Participant part, uint id)
    {

        if (part.Id == id)
            return part;

        foreach (Participant part in participant.child)
        {
            if (part.Id == id)
                return part;

        }

        foreach (Participant part in participant.child)
        {
            if (part.child.Any())
            {
                return FindParticipantById(part, id);
            }
        }

        return null;
    }
0

To moze wez debuger w lapke i przesledz co sie dzieje?

Hint:

foreach (Participant part in participant.child)
{
  if (part.child.Any())
  {
     return FindParticipantById(part, id);
  }
} 

Dla twojego przypadku testowego ta petla wykona sie tylko 2 razy zamiast 3.

1 użytkowników online, w tym zalogowanych: 0, gości: 1