二叉樹的前序、中序、後序遍歷的定義:
前序遍歷:對任一子樹,先訪問根,然後遍歷其左子樹,最後遍歷其右子樹;
中序遍歷:對任一子樹,先遍歷其左子樹,然後訪問根,最後遍歷其右子樹;
後序遍歷:對任一子樹,先遍歷其左子樹,然後遍歷其右子樹,最後訪問根。
題目:給定一棵二叉樹的前序和中序遍歷,求其後續遍歷。
樣例輸入:
abcbac
fdxeag
xdefag
樣例輸出:
b c a
x e d g a f
#include#includestruct node tree[50];
int loc; //靜態陣列中已分配的結點個數
node *creat()
char str1[30], str2[30];
void postorder(node *t)
node *build(int s1, int e1, int s2, int e2)
} if (rootidx != s2)
if (rootidx != e2) //遞迴還原其右子樹
return ret;
}int main()
return 0;
}
每日一題 32 二叉樹的後序遍歷
給定乙個二叉樹,返回它的 後序 遍歷。示例 輸入 1,null,2,3 1 2 3 輸出 3,2,1 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?遞迴演算法 解答 definition for a binary tree node.struct treenode class solution...
每日一題 重建二叉樹
題目 輸入某二叉樹的先序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的先序遍歷和中序遍歷的結果中都不含重複的數字。例如 前序遍歷序列 1,2,4,7,3,5,6,8 和中序遍歷序列 4,7,2,1,5,3,8,6 重建出下圖所示的二叉樹並輸出它的頭結點。param preorder 先序遍歷 p...
每日一題 平衡二叉樹
題目描述 給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1 示例1 輸入 root 3,9,20,null,null,15,7 輸出 true 示例2 輸入 root 1,2,2,3,3,null,null,...