/**
* 二叉樹結點
*/public
class
treenode
public
treenode
(int val)
}
//求二叉樹的深度
public
static
intgetdeep
(treenode root)
//判斷二叉樹是否平衡的
public
static
boolean
isbalance
(treenode root)
//構建平衡二叉樹
public
static treenode tobalancetree
(treenode root)
else
if(rightdeep - leftdeep >1)
return root;
}//左旋
public
static treenode leftrotate
(treenode root)
//右旋
public
static treenode rightrotate
(treenode root)
public
class
main
檢視結果:
可以看到構建成功了。
Java實現二叉樹 雙鏈表
雙鏈表 public class mydoublelink implements iterable private node head 頭節點 private node rear 尾節點 private int modcount 0 從鍊錶的後面新增資料 param data public void...
二叉樹的雙分支結點數
二叉樹的雙分支結點個數 思路 在先序遍歷的基礎上修改 include include include using namespace std const int maxsize 100 typedef char elemtype typedef struct bitnode bitree 建立二叉樹...
二叉樹應用高階之摺紙(二叉樹的右根左遍歷)
前面我們講了二叉樹的幾種基礎遍歷方式 先序遍歷 根左右 中序遍歷 左根右 後序遍歷 根左右 我們發現三種遍歷都是左比右先遍歷的。如果想讓右子樹比左子樹先遍歷呢?其實是一樣的,只不過是遍歷乙個樹結點時,處理右兒子的順序在左兒子之前罷了,至於當前結點則按照需求來放在前 中 後三個位置。摺紙遊戲 拿一張紙...