題目1503 二叉搜尋樹與雙向鍊錶

2021-07-03 01:30:56 字數 1057 閱讀 4764

時間限制:1 秒

記憶體限制:128 兆

題目描述:

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

輸入:輸入可能包含多個測試樣例。

對於每個測試案例,輸入的第一行為乙個數n(0

輸出:對應每個測試案例,

輸出將二叉搜尋樹轉換成排序的雙向鍊錶後,從煉表頭至鍊錶尾的遍歷結果。

樣例輸入:

1

2 1 0 0 3 0 0

樣例輸出:

1 2 3

解題感悟:這個題目讓我感覺很煩, 首先需要建樹,其次根據樹使用中序遍歷。

#include #include #include using namespace std;

struct node

};stackst;

int main(void)

else

}else

else}}

} node dummy(-1);

node *pre = &dummy;

while (!st.empty() || head)

top = st.top();

st.pop();

top -> left = pre;

pre -> right = top;

pre = top;

head = top -> right;

} head = dummy.right;

//printf("%d", head -> val);

//head = head -> right;

while (head)

printf("\n"); }

return 0;

}

題目1503 二叉搜尋樹與雙向鍊錶

題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。輸入 輸入可能包含多個測試樣例。對於每個測試案例,輸入的第一行為乙個數n 0 輸出 對應每個測試案例,輸出將二叉搜尋樹轉換成排序的雙向鍊錶後,從煉表頭至鍊錶尾的遍歷結果。樣例輸...

二叉搜尋樹與雙向鍊錶

1.問題描述 輸入一顆二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。來自 劍指offer 2.分析 對於二叉搜尋樹我們知道,樹的左孩子都比根節點要下,樹的右孩子都比根結點要大,根據這個特點,我們進行中序遍歷得到的序列就會滿足題目的要求,我們...

二叉搜尋樹與雙向鍊錶

問題描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。演算法 struct binarytreenode binarytreenode convert binarytreenode prootoftree plastnodeinl...