当前位置: 首页 > news >正文

巢湖有没有专门做网站的公司自己怎么做网站模块

巢湖有没有专门做网站的公司,自己怎么做网站模块,丹东市住房和城乡建设网站,怎样做某个网站有更新的提醒513.找树左下角的值 leetcode题目地址 题目链接/文章讲解/视频讲解 如果使用递归法#xff0c;如何判断是最后一行#xff1a; 其实就是深度最大的叶子节点一定是最后一行。 //迭代法 class Solution { public:int findBottomLeftValue(TreeNode* root) {queueTreeNod…513.找树左下角的值 leetcode题目地址 题目链接/文章讲解/视频讲解 如果使用递归法如何判断是最后一行 其实就是深度最大的叶子节点一定是最后一行。 //迭代法 class Solution { public:int findBottomLeftValue(TreeNode* root) {queueTreeNode* que;if (root ! NULL) que.push(root);int result 0;while (!que.empty()) {int size que.size();for (int i 0; i size; i) {TreeNode* node que.front();que.pop();if (i 0) result node-val; // 记录最后一行第一个元素if (node-left) que.push(node-left);if (node-right) que.push(node-right);}}return result;} };//递归法 class Solution { public:int maxDepth INT_MIN;int result;void traversal(TreeNode* root, int depth) {if (root-left NULL root-right NULL) {if (depth maxDepth) {maxDepth depth;result root-val;}return;}if (root-left) {traversal(root-left, depth 1); // 隐藏着回溯下一个遍历的时候深度加一本层的不变}if (root-right) {traversal(root-right, depth 1); // 隐藏着回溯, 下一个遍历的时候深度加一本层的不变}return;}int findBottomLeftValue(TreeNode* root) {traversal(root, 0);return result;} }; 112. 路径总和 leetcodet题目链接 题目链接/文章讲解/视频讲解 因为终止条件是判断叶子节点所以递归的过程中就不要让空节点进入递归了。 递归函数是有返回值的如果递归函数返回true说明找到了合适的路径应该立刻返回。 左右子树递归时候的返回值要做判断如果有一支返回true就可以提前返回结果如果都没有返回true返回false class Solution { private:bool traversal(TreeNode* cur, int count) {if (!cur-left !cur-right count 0) return true; // 遇到叶子节点并且计数为0if (!cur-left !cur-right) return false; // 遇到叶子节点直接返回if (cur-left) { // 左count - cur-left-val; // 递归处理节点;if (traversal(cur-left, count)) return true;// 提前结束递归count cur-left-val; // 回溯撤销处理结果}if (cur-right) { // 右count - cur-right-val; // 递归处理节点;if (traversal(cur-right, count)) return true;// 提前结束递归count cur-right-val; // 回溯撤销处理结果}return false;}public:bool hasPathSum(TreeNode* root, int sum) {if (root NULL) return false;return traversal(root, sum - root-val);} };106.从中序与后序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历序列构造二叉树 leetcode题目链接 题目链接/文章讲解/视频讲解 说到一层一层切割就应该想到了递归。 来看一下一共分几步 第一步如果数组大小为零的话说明是空节点了。 第二步如果不为空那么取后序数组最后一个元素作为节点元素。 第三步找到后序数组最后一个元素在中序数组的位置作为切割点 第四步切割中序数组切成中序左数组和中序右数组 顺序别搞反了一定是先切中序数组 第五步切割后序数组切成后序左数组和后序右数组 第六步递归处理左区间和右区间 //框架代码 TreeNode* traversal (vectorint inorder, vectorint postorder) {// 第一步if (postorder.size() 0) return NULL;// 第二步后序遍历数组最后一个元素就是当前的中间节点int rootValue postorder[postorder.size() - 1];TreeNode* root new TreeNode(rootValue);// 叶子节点if (postorder.size() 1) return root;// 第三步找切割点int delimiterIndex;for (delimiterIndex 0; delimiterIndex inorder.size(); delimiterIndex) {if (inorder[delimiterIndex] rootValue) break;}// 第四步切割中序数组得到 中序左数组和中序右数组// 第五步切割后序数组得到 后序左数组和后序右数组// 第六步root-left traversal(中序左数组, 后序左数组);root-right traversal(中序右数组, 后序右数组);return root; }//完整代码 class Solution { private:TreeNode* traversal (vectorint inorder, vectorint postorder) {if (postorder.size() 0) return NULL;// 后序遍历数组最后一个元素就是当前的中间节点int rootValue postorder[postorder.size() - 1];TreeNode* root new TreeNode(rootValue);// 叶子节点if (postorder.size() 1) return root;// 找到中序遍历的切割点int delimiterIndex;for (delimiterIndex 0; delimiterIndex inorder.size(); delimiterIndex) {if (inorder[delimiterIndex] rootValue) break;}// 切割中序数组// 左闭右开区间[0, delimiterIndex)vectorint leftInorder(inorder.begin(), inorder.begin() delimiterIndex);// [delimiterIndex 1, end)vectorint rightInorder(inorder.begin() delimiterIndex 1, inorder.end() );// postorder 舍弃末尾元素postorder.resize(postorder.size() - 1);// 切割后序数组// 依然左闭右开注意这里使用了左中序数组大小作为切割点// [0, leftInorder.size)vectorint leftPostorder(postorder.begin(), postorder.begin() leftInorder.size());// [leftInorder.size(), end)vectorint rightPostorder(postorder.begin() leftInorder.size(), postorder.end());root-left traversal(leftInorder, leftPostorder);root-right traversal(rightInorder, rightPostorder);return root;} public:TreeNode* buildTree(vectorint inorder, vectorint postorder) {if (inorder.size() 0 || postorder.size() 0) return NULL;return traversal(inorder, postorder);} };
http://www.w-s-a.com/news/451128/

相关文章:

  • 吴兴区建设局网站湖北企业网站建设
  • 网页与网站的区别是什么2023年8月份新冠
  • 唐山网站建设外包公司安卓手机怎么搭建网页
  • 国内做网站最大的公司计量检测网站平台建设方案
  • 重庆沛宣网站建设网页制作初学者
  • php网站漂浮广告代码网络营销跟网站推广有啥区别
  • wordpress调用图片优化型网站建设的基本要求
  • 郑州模板网站建设策划公司做网站怎么赚钱滑县电
  • 东昌府聊城网站优化秦皇岛市妇幼保健院
  • 做网站能赚钱吗网页升级访问通知天天更新
  • 做网站使用什么软件的免费招聘网
  • 宁波网站建设公司推荐哪家淄博网站制作公司服务
  • 做网站网页挣钱不免费主题wordpress
  • 如何提高你的网站的粘性手机网站整站模板下载
  • 学校网站建设制度网站相关推荐怎么做
  • 昌图网站wordpress 视频外链
  • 企业网站要怎么建设重庆住房城乡建设部网站
  • html5网站特点seo教程培训班
  • 深圳网站建设哪个最好网站 多语
  • 互联网工具型网站创意网络广告
  • 影视公司网站建设网页界面设计分辨率是多少dpi
  • 免费的做微博的网站模板wordpress 页面 首页
  • 摄影图片网站网站辅导运营与托管公司
  • 做课件的网站长春免费建站模板
  • 响应式网站模板下载免费wordpress 小工具移动
  • 网站标签title在线app制作平台
  • 做电器推广的网站简洁大方的网站模板
  • 网站开发的平台100个详情页设计图
  • wordpress淘宝客建站教程视频知名的设计公司网站
  • 批量做单页网站怎么直接用代码做网站