C++二叉树的建立以及遍历

最近在刷 leetcode 的题目,初学算法,菜鸟一枚,写博客记录下常用代码,以备以后查阅,如果代码出现问题,请各位高手指教

void CreatBiTree(TreeNode* &T) {
	char ch;
	
	if ((ch = getchar()) == '#')
		T = NULL;
		else {
			T = new TreeNode;
			T->val  = ch; 
			CreatBiTree(T->left);
			CreatBiTree(T->right); 
		}
}
void PreOrderTraverse(TreeNode* &T) { // 先序遍历二叉树  
	if (T!=NULL) { // 当节点不为空时执行  
		cout << T->val;
		PreOrderTraverse(T->left);
		PreOrderTraverse(T->right);
	}
	else  
		cout  << "";
}
int main()
{
	Solution s;
	TreeNode *head=new TreeNode;
	
	int a[7] = {1,2,2,3,4,4,3};
	int flag;
	CreatBiTree(head);
	cout << "创建完成" << endl;
	PreOrderTraverse(head);
	cout << "前序遍历" << endl;
	
	system("pause");

}

猜你喜欢

转载自blog.csdn.net/soycoder/article/details/77899435