两个父节点的二叉树,较真二叉树概念的请绕过。二叉树!两个父节点!

有一个二叉树,现在怀疑它有一个结点有2个父节点,请写出一个函数来判断该二叉树是否存在一个节点含有2个父节点。如果存在,返回true,否则返回false。
大神们来看看啊?
提示下算法思路?
代码加点批注就更好了

struct Node{  
    Node *pLeft;  
    Node *pRight;  
    int Data;  
}; 

1、遍历所有节点,令Data=0;
2、遍历所有节点,令Data++;
3、遍历所有节点,如果有Data>1,则说明该节点父节点不止一个。

图片说明
如上图所示:如果有一个节点有两个父亲节点,那么以下是我的思路:
首先定义一个 int rootCount =1; 此变量是root节点表示一个节点,节点个数为一,定义 int Lchild = 0; int Rchild = 0;
开始遍历二叉树,从根开始,若左孩子不为空,Lchild加一,若右孩子不为空,Rchild加一,遍历完成后将 Lchild与Rchild还有rootCount加起来记为
AllCount; 然后遍历一次二叉树,统计节点个数记为NodeCount,判断AllCount 是否小于NodeCount, 若小于则返回true, 否则返回false......

就是这么简单。