亚马逊面试题2(二叉树)
来源:互联网 发布:php hadoop 编辑:程序博客网 时间:2024/06/05 02:03
问题:给定一个二叉树,让每一个叶子节点的右指针指向下一个叶子节点
#include<iostream>using namespace std;class TreeNode{public: TreeNode* left; TreeNode* right; int val; TreeNode(int);};TreeNode::TreeNode(int value){ left = NULL; right = NULL; val = value;}void customInorderTraversal(TreeNode *node, TreeNode **prevleaf){ if (node->left == NULL && node->right == NULL) { if (*(prevleaf) != NULL) { (*(prevleaf))->right = node; } *(prevleaf) = node; } else if (node->left == NULL) { customInorderTraversal(node->right, prevleaf); } else if (node->right == NULL) { customInorderTraversal(node->left, prevleaf); } else { customInorderTraversal(node->left, prevleaf); customInorderTraversal(node->right, prevleaf); }}void createTree(TreeNode* node){ TreeNode* h; h = node; h->left = new TreeNode(2); h->right = new TreeNode(3); h->left->left = new TreeNode(4); h->left->right = new TreeNode(5); h->right->left = new TreeNode(6); h->right->right = new TreeNode(7); h->left->left->left = new TreeNode(8); h->left->left->right = new TreeNode(9);}void displayLeafs(TreeNode * rootnode){ TreeNode* root = rootnode; while (root->left != NULL) { //cout<<root->val<<" "; root = root->left; } cout << "\n叶子节点的路径为 : "; while (root != NULL) { cout << root->val << " "; root = root->right; }}int main(){ TreeNode* rootnode = (TreeNode*) new TreeNode(1); cout << "根节点为:" << rootnode->val << endl; createTree(rootnode); TreeNode* prev = NULL; customInorderTraversal(rootnode, &prev); displayLeafs(rootnode);}
- 亚马逊面试题2(二叉树)
- [二叉树]面试题2
- 二叉树面试题
- 【面试题】-二叉树
- 二叉树面试题
- 二叉树 面试题
- 二叉树面试题
- 二叉树面试题
- 二叉树面试题
- 【面试题】二叉树
- 【面试题】二叉树
- 二叉树面试题
- 二叉树面试题
- 二叉树面试题
- 二叉树面试题
- 二叉树面试题
- 二叉树面试题
- 亚马逊面试题1(数组)
- Codeforces 160A - Twins
- PHPMyadmin 配置文件详解(配置)
- php开发常见的十个问题
- How to think like a Computer Scientist: 课后习题第十八章1
- PCQQ2013 0828涉及到的CRC校验算法[.net
- 亚马逊面试题2(二叉树)
- 一个抽奖函数(自定义中奖项数和概率)
- MFC窗口的关闭过程
- hdu 4738 Caocao's Bridges(双联通)
- PCQQ加密类Tea算法[最新版本兼容]
- python批量删除数据库触发器
- ASCII码表
- php使用mysql扩展库链接mysql数据库(查询)
- servlet与jsp的传值方法(个人手写)