將一顆搜尋二叉樹按照中序遍歷(左-中-右)的順序,變成乙個有序的雙向鍊錶。
所謂的先序遍歷、中序遍歷和後序遍歷都針對的是中間的節點也就是根節點,先序遍歷為中-左-右,後序遍歷為左-右-中
方法一:用佇列作容器,時空複雜度均為o(n)
生成乙個佇列queue,按中序順序遍歷二叉樹,並放入queue中
依次從queue中彈出節點,並按彈出順序重連即可。
public class node
}public node convert1(node head)
pre.right=null;
return head;
}public void inordertoqueue(node head,queuequeue)
inordertoqueue(head.left,queue);
//offer 功能和add一樣,不過當佇列滿後 不報異常會返回false
queue.offer(head);
inordertoqueue(head.right,queue);
}
鍊錶問題 將搜尋二叉樹轉換成雙向鍊錶
題目 對二叉樹的節點來說,有本身的值域,有指向左孩子和右孩子的兩個指標 對雙向鍊錶的節點來說,有本身的值域,有指向上乙個節點和下乙個節點的指標。在結構上,兩種結構有相似性,現在有一棵搜尋二叉樹,請將其轉換為乙個有序的雙向鍊錶。最後返回轉換後的雙向鍊錶的頭節點。基本思路 方法一。時間複雜度o n 空間...
將搜尋二叉樹轉換成雙向鍊錶
對二叉樹的節點來說,有本身的值域,有指向左孩子和右孩子的兩個指標 對雙向鍊錶的節點來說,有本身的值域,有指向上乙個節點和下乙個節點的指標。在結構上,兩種結構有相似性,現在有一棵搜尋二叉樹,請將其轉換為乙個有序的雙向鍊錶。用兩種方法求解本題。方法一 由於是搜尋二叉樹,直接求出其中序遍歷序列,構造雙向鍊...
將搜尋二叉樹轉換成雙向鍊錶
題目 對二叉樹的節點來說,有本身的值域,有指向左孩子和右孩子的兩個指標 對雙向鍊錶的節點來說,有本身的值域,有指向上乙個節點和下乙個節點的指標。在結構上,兩種結構有相似性,現在有一棵搜尋二叉樹,請將其轉換為乙個有序的雙向鍊錶。public class convertdn public static ...