每日一題(七) 二叉樹遍歷

2021-09-10 05:28:57 字數 710 閱讀 8080

二叉樹的前序、中序、後序遍歷的定義:

前序遍歷:對任一子樹,先訪問根,然後遍歷其左子樹,最後遍歷其右子樹; 

中序遍歷:對任一子樹,先遍歷其左子樹,然後訪問根,最後遍歷其右子樹;

後序遍歷:對任一子樹,先遍歷其左子樹,然後遍歷其右子樹,最後訪問根。 

題目:給定一棵二叉樹的前序和中序遍歷,求其後續遍歷。

樣例輸入:

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,...