二叉搜尋樹轉換成雙向鍊錶

2021-08-07 15:48:55 字數 642 閱讀 6245

問:輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。

/**

public class treenode }*/

public class solution

//如果已經遍歷到葉子節點,則將最後的節點轉變成葉子節點

if(prootoftree.left==null && prootoftree.right==null)

//先將左子樹變成排好序的雙向鍊錶

treenode left = convert(prootoftree.left);

//如果左子樹不為空,追加到左子樹

if(left!=null)

//如果右節點為空,則最後的節點位置為根節點。

lastnode = prootoftree;

//將右子樹變成排好序的雙向鍊錶

treenode right = convert(prootoftree.right);

// 如果右子樹煉表不為空的話,將該鍊錶追加到root節點之後

if(right !=null)

return left!=null?left : prootoftree;

}}

鍊錶 將二叉搜尋樹轉換成雙向鍊錶

一 使用佇列 t o n s o n 按照二叉樹中序遍歷的順序,將每個節點放在佇列中 從佇列中依次彈出節點,並按照彈出的順序依次連線節點 public static node convert node root node head q.poll node pre head node cur null...

將搜尋二叉樹轉換成雙向鍊錶

對二叉樹的節點來說,有本身的值域,有指向左孩子和右孩子的兩個指標 對雙向鍊錶的節點來說,有本身的值域,有指向上乙個節點和下乙個節點的指標。在結構上,兩種結構有相似性,現在有一棵搜尋二叉樹,請將其轉換為乙個有序的雙向鍊錶。用兩種方法求解本題。方法一 由於是搜尋二叉樹,直接求出其中序遍歷序列,構造雙向鍊...

將搜尋二叉樹轉換成雙向鍊錶

題目 對二叉樹的節點來說,有本身的值域,有指向左孩子和右孩子的兩個指標 對雙向鍊錶的節點來說,有本身的值域,有指向上乙個節點和下乙個節點的指標。在結構上,兩種結構有相似性,現在有一棵搜尋二叉樹,請將其轉換為乙個有序的雙向鍊錶。public class convertdn public static ...