日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

{面试题6: 重建二叉树}

發(fā)布時間:2025/5/22 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 {面试题6: 重建二叉树} 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

From 劍指Offer 何海濤 著

#include <iostream> #include <exception> #include <string>struct BinaryTreeNode {int m_nValue;BinaryTreeNode *m_pLeft;BinaryTreeNode *m_pRight; };BinaryTreeNode* ConstructBinaryTree(const int *preOrder, const int *inOrder, int length) {if(preOrder== NULL || inOrder == NULL || length <= 0) {return NULL;}BinaryTreeNode *root = new BinaryTreeNode;root->m_nValue = *preOrder;const int *rootInOrder = inOrder;while(rootInOrder < inOrder+length && *rootInOrder != *preOrder) {rootInOrder++;}if(rootInOrder == inOrder+length) {throw std::exception();}int leftLength = rootInOrder-inOrder;root->m_pLeft = ConstructBinaryTree(preOrder+1, inOrder, leftLength);root->m_pRight = ConstructBinaryTree(preOrder+leftLength+1, rootInOrder+1, length-leftLength-1);return root; }

測試集:

bool isEqual(const BinaryTreeNode *left, const BinaryTreeNode *right) {if(left == NULL && right == NULL) {return true;}if(left != NULL && right != NULL) {return left->m_nValue == right->m_nValue && isEqual(left->m_pLeft, right->m_pLeft) && isEqual(left->m_pRight, right->m_pRight);} }void FreeBinaryTree(BinaryTreeNode *root) {if(root != NULL) {FreeBinaryTree(root->m_pLeft);FreeBinaryTree(root->m_pRight);delete root;} }void test(const int *preOrder, const int *inOrder, int length, const BinaryTreeNode *expected) {BinaryTreeNode *actual = ConstructBinaryTree(preOrder, inOrder, length);std::cout << std::boolalpha << (isEqual(actual, expected)) << std::endl;FreeBinaryTree(actual); }int main(int argc, char* argv[]) {{// 普通二叉樹// 1// / \// 2 3// / / \// 4 5 6// \ /// 7 8int preOrder[] = {1, 2, 4, 7, 3, 5, 6, 8};int inOrder[] = {4, 7, 2, 1, 5, 3, 8, 6};BinaryTreeNode node8;node8.m_nValue = 8;node8.m_pLeft = NULL;node8.m_pRight = NULL;BinaryTreeNode node7;node7.m_nValue = 7;node7.m_pLeft = NULL;node7.m_pRight = NULL;BinaryTreeNode node6;node6.m_nValue = 6;node6.m_pLeft = &node8;node6.m_pRight = NULL;BinaryTreeNode node5;node5.m_nValue = 5;node5.m_pLeft = NULL;node5.m_pRight = NULL;BinaryTreeNode node4;node4.m_nValue = 4;node4.m_pLeft = NULL;node4.m_pRight = &node7;BinaryTreeNode node3;node3.m_nValue = 3;node3.m_pLeft = &node5;node3.m_pRight = &node6;BinaryTreeNode node2;node2.m_nValue = 2;node2.m_pLeft = &node4;node2.m_pRight = NULL;BinaryTreeNode node1;node1.m_nValue = 1;node1.m_pLeft = &node2;node1.m_pRight = &node3;test(preOrder, inOrder, 8, &node1);}{// 所有結(jié)點都沒有右子結(jié)點// 1// /// 2// /// 3// /// 4// /// 5int preOrder[] = {1, 2, 3, 4, 5};int inOrder[] = {5, 4, 3, 2, 1};BinaryTreeNode node5;node5.m_nValue = 5;node5.m_pLeft = NULL;node5.m_pRight = NULL;BinaryTreeNode node4;node4.m_nValue = 4;node4.m_pLeft = &node5;node4.m_pRight = NULL;BinaryTreeNode node3;node3.m_nValue = 3;node3.m_pLeft = &node4;node3.m_pRight = NULL;BinaryTreeNode node2;node2.m_nValue = 2;node2.m_pLeft = &node3;node2.m_pRight = NULL;BinaryTreeNode node1;node1.m_nValue = 1;node1.m_pLeft = &node2;node1.m_pRight = NULL;test(preOrder, inOrder, 5, &node1);}{// 所有結(jié)點都沒有左子結(jié)點// 1// \// 2// \// 3// \// 4// \// 5int preOrder[] = {1, 2, 3, 4, 5};int inOrder[] = {1, 2, 3, 4, 5};BinaryTreeNode node5;node5.m_nValue = 5;node5.m_pLeft = NULL;node5.m_pRight = NULL;BinaryTreeNode node4;node4.m_nValue = 4;node4.m_pLeft = NULL;node4.m_pRight = &node5;BinaryTreeNode node3;node3.m_nValue = 3;node3.m_pLeft = NULL;node3.m_pRight = &node4;BinaryTreeNode node2;node2.m_nValue = 2;node2.m_pLeft = NULL;node2.m_pRight = &node3;BinaryTreeNode node1;node1.m_nValue = 1;node1.m_pLeft = NULL;node1.m_pRight = &node2;test(preOrder, inOrder, 5, &node1);}{// 樹中只有一個結(jié)點int preOrder[] = {1};int inOrder[] = {1};BinaryTreeNode node1;node1.m_nValue = 1;node1.m_pLeft = NULL;node1.m_pRight = NULL;test(preOrder, inOrder, 1, &node1);}{// 完全二叉樹// 1// / \// 2 3// / \ / \// 4 5 6 7int preOrder[] = {1, 2, 4, 5, 3, 6, 7};int inOrder[ ] = {4, 2, 5, 1, 6, 3, 7};BinaryTreeNode node7;node7.m_nValue = 7;node7.m_pLeft = NULL;node7.m_pRight = NULL;BinaryTreeNode node6;node6.m_nValue = 6;node6.m_pLeft = NULL;node6.m_pRight = NULL;BinaryTreeNode node5;node5.m_nValue = 5;node5.m_pLeft = NULL;node5.m_pRight = NULL;BinaryTreeNode node4;node4.m_nValue = 4;node4.m_pLeft = NULL;node4.m_pRight = NULL;BinaryTreeNode node3;node3.m_nValue = 3;node3.m_pLeft = &node6;node3.m_pRight = &node7;BinaryTreeNode node2;node2.m_nValue = 2;node2.m_pLeft = &node4;node2.m_pRight = &node5;BinaryTreeNode node1;node1.m_nValue = 1;node1.m_pLeft = &node2;node1.m_pRight = &node3;test(preOrder, inOrder, 7, &node1);}{int preOrder[] = {1, 2, 4, 5, 3, 6, 7};int inOrder[] = {4, 2, 8, 1, 6, 3, 7};try {test(preOrder, inOrder, 7, NULL);} catch(std::exception& e) {std::cout << "true" << std::endl;}}{test(NULL, NULL, 0, NULL);}return 0;}

?

轉(zhuǎn)載于:https://www.cnblogs.com/long3216/p/4439448.html

總結(jié)

以上是生活随笔為你收集整理的{面试题6: 重建二叉树}的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产a级精品 | 成人一级视频在线观看 | 国产黄色在线网站 | 日韩精品电影网 | 九九国产视频 | 原创真实夫妻啪啪av | 精品欧美在线观看 | 日韩中字在线 | 久久r这里只有精品 | 欧美猛交xxx | 熟女人妻aⅴ一区二区三区60路 | 女人高潮娇喘1分47秒 | 国产高清视频免费观看 | 97高清国语自产拍 | 国产一级不卡毛片 | 91一区二区三区四区 | 欧美成人黄色小说 | 无码人妻精品一区二区蜜桃色欲 | 一本大道视频 | 精品一区二区三区四区五区 | 国产成人午夜高潮毛片 | 日本福利一区二区三区 | 欧美一区二区激情 | 国产一级生活片 | 成人精品一区二区三区电影 | 成人av在线网址 | 色呦呦网站在线观看 | 欧美日韩三级在线观看 | 久久综合久久综合久久 | 日日干天天爽 | 成年人看的黄色片 | 日韩成人综合 | 在线观看亚洲成人 | 日韩欧美精品一区 | 亚洲丝袜中文字幕 | 黄色日本视频 | 高潮疯狂过瘾粗话对白 | 梦梦电影免费高清在线观看 | 日韩经典三级 | 日本一级吃奶淫片免费 | 在线视频免费观看一区 | 欧美日韩精品久久久 | 韩国av一区二区 | 日韩中文字幕视频在线观看 | 日韩午夜激情 | 国精产品一区一区三区有限公司杨 | 91麻豆网| 潮见百合子| 麻豆传媒在线视频 | 中文字幕在线日本 | 性日韩 | 亚洲成人777 | 久青草视频在线 | 日韩激情网 | 成人激情五月天 | 日韩av男人天堂 | 久久精品免费网站 | 欧美日韩在线观看视频 | 秋霞欧美视频 | 精东影业一区二区三区 | 嫩草视频在线观看免费 | 精品少妇一区二区三区免费观 | 麻豆av在线看 | 欧美色啪 | 激情吧| 夜夜爽夜夜叫夜夜高潮漏水 | 色av性av丰满av| av片手机在线观看 | 婷婷中文在线 | 亚洲www| 亚洲欧美偷拍视频 | 欧美日韩久久精品 | 青娱乐激情 | 日韩av午夜 | www.桃色av嫩草.com | 亚洲女人天堂av | 天天热天天干 | 在线免费 | 丰满岳跪趴高撅肥臀尤物在线观看 | wwwxxx黄色片 | 国产高清精品在线 | h在线网站 | 成年人在线免费观看 | 少妇被又大又粗又爽毛片久久黑人 | 毛片xxx| 国产成人在线播放视频 | 欧美二区在线观看 | 欧美深夜福利 | 亚洲一区偷拍 | av尤物在线 | 亚洲成人一区二区三区 | 黄视频免费观看 | 无码少妇一区二区三区 | 欧美一区二区三区电影 | 国产寡妇亲子伦一区二区三区四区 | 琪琪在线视频 | 国内精久久久久久久久久人 | 国产亚洲欧洲 | www.色综合.com |