博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
先序遍历和后序遍历构建二叉树
阅读量:4428 次
发布时间:2019-06-07

本文共 1219 字,大约阅读时间需要 4 分钟。

递归的方法利用先序遍历和中序遍历构建二叉树,同样也可以利用到中序遍历和后序遍历构建二叉树。

//利用先序遍历和中序遍历构建二叉树TreeNode* buildTree(vector
& preorder, vector
& inorder) { TreeNode *root=NULL; if(preorder.size()==0||inorder.size()==0||preorder.size()!=inorder.size()) return root; root=tree(preorder,0,preorder.size()-1,inorder,0,inorder.size()-1); return root;} TreeNode* tree(vector
&preorder,int preBegin,int preEnd,vector
&inorder,int inBegin,int inEnd){ TreeNode *root=NULL; if(preorder.size()==0||inorder.size()==0||preorder.size()!=inorder.size()) return root; TreeNode *leftNode=NULL; TreeNode *rightNode=NULL; root->val=preorder[preBegin]; int rootVal=root->val; int i;for(i=inBegin;i<=inEnd;i++) if(inorder[i]==root->val) break; if(i>inEnd) return root; int leftLen=i-inBegin; int rightLen=inEnd-i-1; leftNode=buildTree(preorder,preBegin+1,preBegin+leftLen,inorder,inBegin,inBegin+leftLen); rightNode=buildTree(preorder,preBegin+1+leftLen,preEnd,inorder,i+1,i+rightLen); root->left=leftNode; root->right=rightNode; return root;}

 

转载于:https://www.cnblogs.com/healthylife/p/5869787.html

你可能感兴趣的文章
LeetCode-Create Maximum Number
查看>>
随想之三 -CMDB
查看>>
STM32的DMA
查看>>
Process Class (System.Diagnostics)
查看>>
hdu 3001
查看>>
手机端H5上滑加载下一页
查看>>
Coursera Algorithms week3 快速排序 练习测验: Nuts and bolts
查看>>
Spring框架中Bean管理的常用注解
查看>>
Core Animation系列之CADisplayLink
查看>>
dedecms标签调用大全
查看>>
System.out.print()思考?
查看>>
《与小卡特一起学Python》Code1
查看>>
C#面试题
查看>>
work of 1/4/2016
查看>>
javascript作用域
查看>>
your local changes would be overwritten by merge. commit stash or revert them to proceed. view them
查看>>
Git 详细命令集
查看>>
布局inline-block问题
查看>>
MVC6 TagHelpers整合到了MVC版本
查看>>
C#学习笔记-抽象工厂模式
查看>>