多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 【一天一道LeetCode】#105. Construct Binary Tree from Preorder and Inorder Traversal

【一天一道LeetCode】#105. Construct Binary Tree from Preorder and Inorder Traversal

來源:程序員人生   發布時間:2016-08-06 09:04:47 閱讀次數:2418次

1天1道LeetCode

本系列文章已全部上傳至我的github,地址:ZeeCoder‘s Github
歡迎大家關注我的新浪微博,我的新浪微博
歡迎轉載,轉載請注明出處

(1)題目

來源:https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/

Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.

(2)解題

題目大意:根據2叉樹的前序和中序遍歷,構造出該2叉樹

劍指offer上的老題了,前序遍歷的第1個節點為根節點,在中序遍歷中找到該節點,其左側為根節點的左子樹,后邊為根節點的右子樹。順次遞歸下去便可以重構出該2叉樹。

如:123和213,前序遍歷找出根節點為1,在中序遍歷213中找出1,則2為左子樹,3為右子樹。

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: typedef vector<int>::iterator vi; TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { if(preorder.empty()||inorder.empty()) return (TreeNode*)NULL; vi preStart = preorder.begin(); vi preEnd = preorder.end()-1; vi inStart = inorder.begin(); vi inEnd = inorder.end()-1; return constructTree(preStart,preEnd,inStart,inEnd); } TreeNode* constructTree(vi preStart,vi preEnd,vi inStart,vi inEnd) { //表示該節點為NULL if(preStart>preEnd||inStart>inEnd) return NULL; //前序遍歷的第1個節點為根節點 TreeNode* root = new TreeNode(*preStart); //只有1個節點的時候直接返回 if(preStart==preEnd||inStart==inEnd) return root; vi rootIn = inStart; while(rootIn!=inEnd){//在中序遍歷中找出根節點 if(*rootIn==*preStart) break; else ++rootIn; } root->left = constructTree(preStart+1,preStart+(rootIn-inStart),inStart,rootIn-1);//遞歸構造左子樹 root->right = constructTree(preStart+(rootIn-inStart)+1,preEnd,rootIn+1,inEnd);//遞歸構造右子樹 return root; } };
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产亚洲精品激情一区二区三区 | 伊人久久大香线蕉久久婷婷 | 中文字幕视频二区 | 日本不卡免费高清一级视频 | 国产成人av在线 | xxxx18日本护士hd| 玖玖精品在线观看 | 久久久久久久国产精品 | 亚a在线| 亚洲在线免费免费观看视频 | 黑人操大逼 | 国产高清在线播放免费观看 | 国产成人一区二区 | 久久亚洲欧美 | 欧美xxxxx九色视频免费观看 | 黑人干中国妞 | sss欧美一区二区三区 | 日韩一区二区在线视频 | 精品免费视在线视频观看 | 校园春色 自拍偷拍 | xxxxx视频| 亚洲欧美日韩不卡 | 九九精品免费观看在线 | 性欧美videofree中文字幕 | 久草视频播放 | 二级毛片在线观看 | 欧美精品v日韩精品v国产精品 | 东方aⅴ免费观看久久av | 午夜秋霞成人理论 | 国产一国产一有一级毛片 | 日韩亚洲欧美一区 | 亚洲欧洲日产国码二区在线 | 欧美亚洲国产另类 | 国产免费av片在线观看 | 五月天精品视频播放在线观看 | 波多野结衣国产一区 | 动漫日本在线免费观看 | 国内外精品免费视频 | 免费网站h| 高清免费a级在线观看国产 高清免费国产在线观看 | 欧美日韩国产一区二区三区欧 |