求二叉樹中所有度為2的結點個數
思路
利用樹的遞歸性質,使用遞歸算法,結點b以下的所有結點中度為2的結點個數為左子樹+右子樹中度為2的結點個數+b自身是否為度為2
的結點
1、f(b)=0 若b為null
2、f(b)=f(b->lchild)+f(b->rchlid)+1 若b為雙分支結點
3、f(b)=f(b->lchild)+f(b->rchlid) 其他情況,即b為單分支結點或葉結點
另一解法
也可以依次遍歷所有結點,檢查左右子樹是否存在,但是這種比較麻煩。
利用樹的遞歸性質,使用遞歸算法,結點b以下的所有結點中度為2的結點個數為左子樹+右子樹中度為2的結點個數+b自身是否為度為2
的結點
1、f(b)=0 若b為null
2、f(b)=f(b->lchild)+f(b->rchlid)+1 若b為雙分支結點
3、f(b)=f(b->lchild)+f(b->rchlid) 其他情況,即b為單分支結點或葉結點
也可以依次遍歷所有結點,檢查左右子樹是否存在,但是這種比較麻煩。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。