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

2021-10-02 05:55:09 字數 595 閱讀 9393

將一顆搜尋二叉樹按照中序遍歷(左-中-右)的順序,變成乙個有序的雙向鍊錶。

所謂的先序遍歷、中序遍歷和後序遍歷都針對的是中間的節點也就是根節點,先序遍歷為中-左-右,後序遍歷為左-右-中

方法一:用佇列作容器,時空複雜度均為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 ...