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...