二叉樹的資料結構
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 小結 重要 二叉樹的路徑搜尋就是乙個簡易版的行程回溯演算法,之所以是簡易版是因為...