求二叉樹葉子結點,求樹的高度,求第K層的總結點數

2021-09-27 13:47:07 字數 1130 閱讀 6912

//遍歷求數的葉子結點

public static int leafcount=0;

public static int calcleafcount1(node root)

//先去看他的左子樹的葉子結點,如果裡面左右子樹都為空,則++

calcleafcount1(root.left);

if(root.left==null&&root.right==null)

//注意:如果該點是葉子結點,在上一步if就已經把左右都判斷了,下面呼叫肯定是返回

//0的,可是要寫下面呼叫的原因是主要判斷回溯到上乙個結點時的右子樹,並不是來

//判斷該點的右子樹,該點的上一步已經判斷過了,

calcleafcount1(root.right);

return leafcount;

}//彙總求葉子結點

public static int calcleafcount2(node root)

//代表只有乙個結點的數

if(root.left==null&&root.right==null)

int left=calcleafcount2(root.left);

int right=calcleafcount2(root.right);

return left+right;

}//求數的高度

public static int calcheight(node root)

int left=calcheight(root.left);

int right=calcheight(root.right);

int height=math.max(left,right)+1;

return height;

}//求第k層的總結點數

public static int calcklevel(node root,int k)

if(k==1)

int left=calcklevel(root.left,k-1);

int right=calcklevel(root.right,k-1);

int count=left+right;

return count;

}

求二叉樹葉子結點個數

樹的定義 由乙個或多個 n 0 結點組成的有限集合t,有且僅有乙個結點稱為根 root 當 n 1時,其餘的結點分為m m 0 個相互不相交的有限集合t1,t2,tm。每個集合本身又是棵樹,被稱作這個根的子樹。樹的結構特點 1.非線性結構,有乙個直接前驅,但可能有多個直接後繼 1 n 2.樹的定義具...

求二叉樹葉子節點的個數 求二叉樹第k層的節點個數。

include using namespace std template struct binarytreenode t data binarytreenode left binarytreenode right template class binarytree 建構函式 binarytree c...

求二叉樹高度

函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測試程式樣例 include...