日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全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 閱讀次數:2423次

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免费 | 久久久久久久国产 | 国产激情在线视频 | 久久免费一区 | 亚洲性激情 | 欧美在线视频一区 | 精品久视频 | 99久久er热在这里只有精品15 | 欧美日韩亚洲成人 | 国产精品日韩欧美 | 国产精品久久久一区二区三区 | 亚洲成人午夜电影 | 国产精品久久久久久久免费软件 | 亚洲成人福利 | 一级在线 | 国产精品综合久久 | 日韩免费高清视频 | 国产一区二区三区在线 | 精品一区二三区 | 一区二区三区欧美在线 | 黄色成人在线看 | 亚洲国产精品一区二区久久,亚洲午夜 | 久久久久久国产精品免费 | 欧美三级黄色大片 | 91精品入口蜜桃 | 欧美成人久久 | 欧美 日韩 中文 | 九九香蕉视频 | 欧美99视频| 99国产精品99 | 久久精品成人一区二区三区蜜臀 | 亚洲精品免费在线观看 | 成人在线免费视频观看 | 高清不卡一区二区三区 | 久久99久久久 | 久久99久久精品 | 久久久国产精品免费 | 国产区在线观看 | 亚洲黄色在线观看 | 亚洲 欧美 视频 |