有關二叉樹的一些問題集合(一)

2021-08-08 17:58:37 字數 1603 閱讀 6902

二叉樹的資料結構

class

treenode

1.求二叉樹的最大深度

int maxdeath(treenode node)

intleft = maxdeath(node.left);

intright = maxdeath(node.right);

return math.max(left,right)+1;

2.求二叉樹的最小深度

int getmindepth(treenode root)

return getmin(root);

}int getmin(treenode root)

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

return math.min(getmin(root.left),getmin(root.right)) + 1;

}

3.求二叉樹節點的個數

int numoftreenode(treenode root)

intleft = numoftreenode(root.left);

intright = numoftreenode(root.right);

return left + right + 1;

}

4.求二叉樹葉子節點的個數

int numsofnochildnode(treenode root)

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

return numsofnodetreenode(root.left)+numsofnodetreenode(root.right);

}

5.求二叉樹第k層節點的個數

int numsofkleveltreenode(treenode root,int k)

if(k==1)

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

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

return numsleft + numsright;

}

6.判斷二叉樹是否是平衡二叉樹

boolean isbalanced(treenode node)

int maxdeath2(treenode node)

intleft = maxdeath2(node.left);

intright = maxdeath2(node.right);

if(left==-1||right==-1||math.abs(left-right)>1)

return math.max(left, right) + 1;

}

二叉樹的一些問題

二叉樹的先序遍歷 遞迴 void preorder btnode ptr 二叉樹中序遍歷 遞迴 void inorder btnode ptr 二叉樹後序遍歷 遞迴 void pastorder btnode ptr 先序遍歷二叉樹 非遞迴 void nicepastorder btnode ptr...

關於二叉樹的一些問題

tips 關於二叉樹的絕大多數問題都可以用遞迴方法來實現,dfs。一位二叉樹根節點去掉之後又分為兩個子樹,對於子樹本身也可以看左二叉樹來處理。所以遞迴可以說很好用了 二叉樹的建立 public class bittree public bittree int data public static b...

二叉樹 路徑搜尋中的一些問題

目錄前言 1 求二叉樹的最大深度 leetcode104 2 求二叉樹的最小深度 leetcode111 3 求二叉樹的正向 逆向數字路徑和 leetcode129 4 求二叉樹的節點路徑和 leetcode437 5 小結 重要 二叉樹的路徑搜尋就是乙個簡易版的行程回溯演算法,之所以是簡易版是因為...