主要是建立的時候要為空節點動態分配再賦值,不然沒有兒子,必須得有兒子,哪怕為空,不然不是葉子節點,不然輸出遍歷的時候會錯!(傳頭結點引數的時候傳它的位址,因為這樣方便改變)
#include using namespace std;
typedef struct tree * ptree;
ptree fathertree;
ptree createtree(int data, ptree &root)
else if (data < root->data)
else if (data > root->data)
return root; //走到底後或者data值相等就直接返回啦!千萬不要忘了!
}void print(ptree now)
else
printf(" %d",now->data);
print(now->left);
print(now->right);
}}int main()
print(fathertree);
printf("\n");
}return 0;
}
搜尋二叉樹建立
time limit 1000 ms memory limit 65536 kib problem description 在樹結構中,有一種特殊的二叉樹叫做排序二叉樹,直觀的理解就是 1 每個節點中包含有乙個關鍵值 2 任意乙個節點的左子樹 如果存在的話 的關鍵值小於該節點的關鍵值 3 任意乙個節...
39 平衡二叉樹
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。遞迴判斷左子樹和右子樹是否是平衡二叉樹 從下往上遍歷,如果子樹是平衡二叉樹,則返回子樹的高度 如果發現子樹不是平衡二叉樹,則返回 1,直接停止遍歷,這樣至多只對每個結點訪問一次。public class solution public intgetdep...
39平衡二叉樹
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。平衡二叉樹根據定義,父結點需要子結點兩個資訊 一是左右子樹是否平衡,二是左右子樹的高度差是否 1,注意在最終返回資料時,返回左右子樹的最大高度 1 頭結點 我們可以自己建立乙個結構實現。public static resultdata isbalance...