/**
* 二叉搜索樹與雙向鏈表
*
* @param root
* @return
*/
public BinaryTreeNode convert(BinaryTreeNode root) {
BinaryTreeNode last = null;
convertNode(root, last);
BinaryTreeNode head = last;
while (head != null && head.left != null) {
head = head.left;
}
return head;
}
private void convertNode(BinaryTreeNode root, BinaryTreeNode last) {
if (root == null) return;
BinaryTreeNode cur = root;
if (cur.left != null) {
convertNode(cur.left, last);
}
cur.left = last;
if (last != null) {
last.right = cur;
}
last = cur;
if (cur.right != null) {
convertNode(cur.right, last);
}
}
劍指Offer學習-面試題36:二叉搜索樹與雙向鏈表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.