PTA L2 011 玩轉二叉樹

2021-09-17 19:38:52 字數 574 閱讀 9481

這道題和l2-006樹的遍歷是幾乎一樣的思路,都是通過兩個遍歷序列得到原來的樹,然後再進行層序遍歷。

這題的細小區別在於給的是前序遍歷,因此這次的根結點應該是序列的第乙個。

第一次寫的時候寫了個翻轉的函式,但是之後又想了想,只要在層序遍歷時先push右子樹就實現了翻轉,因此可以省略這個函式。

#include#includeusing namespace std;

int inorder[40];

int preorder[40];

int ltree[40];

int rtree[40];

int n;

//l1,r1描述中序,l2,r2描述前序

int rebuild(int l1, int r1, int l2, int r2)

void reverse(int root)

return;

}int main()

cout << endl;

system("pause");

return 0;

}

L2 011 玩轉二叉樹 二叉樹

題目傳送門 給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉後的層序遍歷的序列。所謂鏡面反轉,是指將所有非葉結點的左右孩子對換。這裡假設鍵值都是互不相等的正整數。輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其中序遍歷序列。第三行給出其前序遍歷序列。數字間以...

L2 011 玩轉二叉樹

給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉後的層序遍歷的序列。所謂鏡面反轉,是指將所有非葉結點的左右孩子對換。這裡假設鍵值都是互不相等的正整數。輸入格式 輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其中序遍歷序列。第三行給出其前序遍歷序列。數字間以空...

pat L2 011 玩轉二叉樹

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉後的層序遍歷的序列。所謂鏡面反轉,是指將所有非葉結點的左右孩子對換。這裡假設鍵值都是互不相等的正整數。輸入格式 ...