code: func (fp *fetcherPeerInfo) deleteNode(n *fetcherTreeNode) {
  	if n.parent != nil {
  		for i, nn := range n.parent.children {
  			if nn == n {
  				n.parent.children = append(n.parent.children[:i], n.parent.children[i+1:]...)
  				break
  			}
  		}
  	}
  	for {
  		if n.td != nil {
  			delete(fp.nodeByHash, n.hash)
  		}
  		fp.nodeCnt--
  		if len(n.children) == 0 {
  			return
  		}
  		for i, nn := range n.children {
  			if i == 0 {
  				n = nn
  			} else {
  				fp.deleteNode(nn)
  			}
  		}
  	}
  }
docs: // deleteNode deletes a node and its child subtrees from a peer's block tree