创建二叉树
2014-05-13 10:40
99 查看
/* * LeetCode--Same Tree * date 2014/5/13 * state AC */ #include <iostream> using namespace std; /** * Definition for binary tree */ struct TreeNode { char val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: bool isSameTree(TreeNode *p, TreeNode *q) { /* if(p->val==q->val && isSameTree(p->left,q->left) && isSameTree(p->right,q->right)) return true; else return false; */ //return isSameTree(p->left,q->left); //return isSameTree(p->right,q->right); if(p==NULL && q==NULL)return true;//两者都是NULL if(p!=NULL && q!=NULL && p->val==q->val//两者结点数据相等 && isSameTree(p->left,q->left) //且左子树相同 && isSameTree(p->right,q->right))//且右子树相同 return true; else return false; } }; //前序遍历建树 void createBinTree(TreeNode*& T)//指针引用 { //TreeNode* root; char temp; cin>>temp; if(temp=='#')T=NULL; else { //if() T=new TreeNode(temp); if(!T)return; createBinTree(T->left); createBinTree(T->right); } } //前序遍历树 void preOrder(TreeNode* root) { if(root!=NULL) { cout<<root->val<<" "; preOrder(root->left); preOrder(root->right); } } /* void CreateBiTree(TreeNode*& t)//必须用& { char ch; cin>>ch; if(ch=='#') t=NULL; else { t=new TreeNode(ch); if(!t) return; //t->val=ch; CreateBiTree(t->left); CreateBiTree(t->right); } } //先序遍历 void PreOrderTraverse(TreeNode* t) { if(t) { cout<<t->val<<" "; PreOrderTraverse(t->left); PreOrderTraverse(t->right); } } */ TreeNode* create() { char ch; cin>>ch; TreeNode* root; if(ch=='#') return NULL; else { root=new TreeNode(ch); root->left=create(); root->right=create(); return root; } } int main() { //cout << "Hello world!" << endl; TreeNode* t=NULL; //createBinTree(t); t=create(); preOrder(t); //CreateBiTree(t); return 0; }
相关文章推荐
- 二叉树的创建与遍历(链式存储)
- 二叉树的创建与遍历(递归版本)
- 《Cracking the Coding Interview 》之 二叉树的创建 与 遍历(非递归+递归version)
- 创建二叉树
- Java创建二叉树及其遍历的递归和非递归实现
- 二叉树的创建与遍历
- C++ 二叉树创建、遍历访问、删除
- 二叉树创建-前言
- 数据结构--二叉树的创建和相关操作
- 先序遍历创建二叉树,对二叉树统计叶子节点个数和统计深度(创建二叉树时#代表空树,序列不能有误)c语言
- 二叉树(先序创建,非递归先序,中序遍历)-----2
- 数据结构 二叉树 创建 遍历
- 二叉树:创建,遍历(递归、非递归、层次)
- 判断平衡二叉树,创建二叉树,先序遍历二叉树
- 二叉树的创建和遍历
- 二叉树的创建--(4)Copy、Size、Height、Destroy、Equal、Parent
- 二叉树的创建,遍历,查找,查找父节点,深度,大小等的递归实现
- 二叉树的创建、前序遍历、中序遍历、后序遍历
- 先序遍历创建二叉树,对二叉树统计叶子节点个数和统计深度(创建二叉树时#代表空树,序列不能有误)c语言
- 二叉树的创建、前序遍历、中序遍历、后序遍历