二叉树(三)二叉树的高度、交换两个子树左右节点
2014-04-24 14:42
330 查看
比较简单:
int depth(Node *head) //空二叉树的深度为-1,只有根节点为0,看连接线 这个函数求树的深度 { if (head==NULL) { return -1; } return max(depth(head->left),depth(head->right))+1; } void swaplr(Node *head) //交换树的左右两个节点 { if (head==NULL) { return; } if(head->left&&head->right) { int temp=head->left->val; head->left->val=head->right->val; head->right->val=temp; } swaplr(head->left); swaplr(head->right); } bool isInTree(Node *head,int lookfor)//判断lookfor是否在树中 { //前序遍历实现的 中左右 if (head==NULL) { return false; } else if (head->val==lookfor) { return true; } if(isInTree(head->left,lookfor)) { return true; } else if (isInTree(head->right,lookfor)) { return true; } return false; }
相关文章推荐
- mysql保存中文乱码的原因和解决办法
- 使用system()函数一定要谨慎-2
- 双向链表java实现
- oracel SQL多表查询优化
- 红颜弹指老刹那芳华
- 【C#】 DecodeUrl with c#
- OpenSSL 信息摘要算法
- cocos2d-x android平台切入后台纹理失效的解决方法
- Eclipse 如何修改工程(project)名称
- 合并排序
- 博客怎么写?
- C# struct 和byte[] 相互转换
- 栈和托管堆
- return 1 或 return 0 的作用
- 使用system()函数一定要谨慎-1
- sdut 2169
- PDO防注入原理分析以及使用PDO的注意事项
- IE11中<dd>标签不显示 的原因解析
- sdut 2169
- .Net(C#)最简单的邮件发送案例