時間限制:1 秒
記憶體限制:128 兆
題目描述:
輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。
輸入:輸入可能包含多個測試樣例。
對於每個測試案例,輸入的第一行為乙個數n(0
輸出:對應每個測試案例,
輸出將二叉搜尋樹轉換成排序的雙向鍊錶後,從煉表頭至鍊錶尾的遍歷結果。
樣例輸入:
12 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...