二叉樹的左右雙旋和右左雙旋

2021-10-03 18:28:33 字數 847 閱讀 1226

/**

* 二叉樹結點

*/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 建立二叉樹...

二叉樹應用高階之摺紙(二叉樹的右根左遍歷)

前面我們講了二叉樹的幾種基礎遍歷方式 先序遍歷 根左右 中序遍歷 左根右 後序遍歷 根左右 我們發現三種遍歷都是左比右先遍歷的。如果想讓右子樹比左子樹先遍歷呢?其實是一樣的,只不過是遍歷乙個樹結點時,處理右兒子的順序在左兒子之前罷了,至於當前結點則按照需求來放在前 中 後三個位置。摺紙遊戲 拿一張紙...