二叉樹相關題

2021-07-15 12:43:28 字數 937 閱讀 4206

1、有父指標。分兩種情況

node* findnextnode(node* node)

//2、右子樹為空,順著父指標往上找,直到找到乙個節點是其父節點的左孩子,則這個父節點就是下乙個節點

else

next =

parent;

}return next;

}

2、普通二叉樹,借助中序遍歷

//查詢中序遍歷的某個節點的下乙個節點

node* findnextnode(node* node)

node* top = s.top();

s.pop();

if (find)

return top;

if (top == node)

find = true;

cur = top->_rightchild;

}if (s.empty())

cout

<< "最後乙個節點"

<< endl;

return null;

}

題目:判斷一棵二叉樹是否平衡(左子樹和右子樹的高度不超過1)

bool isbalance()

//用後序遍歷的方式遍歷整課二叉樹,在遍歷到某一節點之後根據它左右節點的深度

//判斷當前節點是否平衡,再計算當前節點的深度。知道遍歷到根節點

bool _isbalance(node*& root, int& depth)

int left = 0;

int right = 0;

if (_isbalance(root->_left, left) && _isbalance(root->_right, right))

}return

false;

}

二叉樹相關

1.首先建立乙個樹節點,節點有值,左節點和右節點 author 張夢楠 title package description date 2018 5 2519 27 blog www.itzmn.com 樹的節點類 public class treenode public treenode int v...

二叉樹相關

廣度優先遍歷 對於每層的節點,放到乙個用來處理節點佇列裡,另外每個佇列對應乙個vector,將每層節點放進vector 對於每個佇列,彈出先放的元素q.front,將這個元素放進vector,隨後,將左節點和右子節點放進佇列 class solution queue q q.push root wh...

二叉樹相關程式設計題總結

由前序遍歷和中序遍歷重建二叉樹 判斷一棵樹是否是完全二叉樹 求二叉樹兩個節點的最近公共祖先 將二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。前序序列 1 2 3 4 5 6 中序序列 3 2 4 1 6 5 在沒有重複節點的前提下 node greattr...