1. 程式人生 > >二叉樹的前序遍歷(leetcode中級篇一百四十五題)

二叉樹的前序遍歷(leetcode中級篇一百四十五題)

給定一個二叉樹,返回它的 前序 遍歷。

示例:

輸入: [1,null,2,3]
1

2
/
3

輸出: [1,2,3]

在這裡插入圖片描述

void PreOrder(struct TreeNode* root, int* returnSize, int* ans)
{
    if(root !=  NULL)
    {
        ans[(*returnSize)++] = root -> val;
        PreOrder(root -> left, returnSize, ans);
        PreOrder(root ->
right, returnSize, ans); } } int TreeSize(struct TreeNode* root)//計算這顆樹有多少個結點 { if(root == NULL) return 0; return TreeSize(root -> left) + TreeSize(root -> right) + 1; } int* preorderTraversal(struct TreeNode* root, int* returnSize) { int size = TreeSize(root); int* ans =
(int*)malloc(sizeof(int)*size); *returnSize = 0; PreOrder(root, returnSize, ans); return ans; }

筆者就不把所有的程式碼都發出來了,其餘的倆種只是改變了那三行程式碼的順序即可。