title: Filter a tree using recursion
body: <p>I have a tree that appears as follows. </p>
  
  <pre>
  A1
    B1
      B2   
      A2
        A3 
        B3
          A4        
    A5
    C1
      C2
        C3
          A6
  </pre>
  
  <p>I want to filter this to return</p>
  
  <pre>
  A1
    A2
      A3 
      A4        
    A5
    A6
  </pre>
  
  <p>The basic idea is to only return A nodes. The struggle that I am having is in the case A2 I want to drop B1 and pull A2 up to the level of B2</p>
  
  <p>I am using c# The tree is made up of List of Nodes</p>