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

潍坊市企业网站建设福田网站推广

潍坊市企业网站建设,福田网站推广,免费ip地址,企业网站优化策略目录 题目#xff1a;剑指 Offer 06. 从尾到头打印链表 - 力扣#xff08;LeetCode#xff09; 题目的接口#xff1a; 解题思路#xff1a; 代码#xff1a; 过啦#xff01;#xff01;#xff01; 题目#xff1a;剑指 Offer 07. 重建二叉树 - 力扣#xf…目录 题目剑指 Offer 06. 从尾到头打印链表 - 力扣LeetCode 题目的接口 解题思路 代码 过啦 题目剑指 Offer 07. 重建二叉树 - 力扣LeetCode 题目的接口 解题思路 代码 过啦 写在最后 题目剑指 Offer 06. 从尾到头打印链表 - 力扣LeetCode 题目的接口 /*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func reversePrint(head *ListNode) []int {} 解题思路 这道题我读完之后想到了两种思路1、直接从后往前去链表的值放进数组但是这样既不好写复杂度也非常的高不推荐 2、先将链表存进一个临时数组再创建一个返回数组将临时数组的值从后往前存进返回数组中这样就实现了来看代码 /*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/func reversePrint(head *ListNode) []int {r : make([]int, 0)for head ! nil {r append(r, head.Val)head head.Next} ans : make([]int, 0)i : len(r) - 1for i 0 {ans append(ans, r[i])i--}return ans } 不过做完这道题之后我去翻看题解区看到了一个大佬写了一个很妙的解法就是利用递归的特性用 append 函数将链表的值倒着连接成一个切片返回。 代码 /*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func reversePrint(head *ListNode) []int {var f func(head *ListNode) []int f func(head *ListNode) []int {if head nil {return []int{}}return append(f(head.Next), head.Val) }return f(head) } 过啦 题目剑指 Offer 07. 重建二叉树 - 力扣LeetCode 题目的接口 /*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/ func buildTree(preorder []int, inorder []int) *TreeNode {} 解题思路 这种二叉树的题目一般也是有两种解法一个递归一个迭代递归比较简单所以我们当然是先来递归这里递归的核心思路就是根据题目给的前序和中序遍历找到这棵树的根节点以及左右子树具体思路如下 前序的第一个值就是根节点根据这个根节点我们就能找到中序遍历中的根节点位置然后将中序数组分成左右子树两个部分再根据中序左右子树的长度我们就能找到前序数组左右字数的位置再递归求解即可代码如下 /*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/ func buildTree(preorder []int, inorder []int) *TreeNode {for k : range inorder {if inorder[k] preorder[0] {return TreeNode {Val: preorder[0],Left: buildTree(preorder[1:k1], inorder[0:k]),Right: buildTree(preorder[k1:], inorder[k1:]),} }}return nil } 递归求解还是相对简单的比较有难度的就是迭代的解法使用这个迭代法的核心思想就是若这颗树是一颗只有左子树的树,相当于一条单链表 那中序遍历和先序遍历的结果是反过来的利用这个特性我们就能用栈来存储节点到最左下的位置时开始取栈中元素和中序数组匹配如果遇到不相等的情况证明这个不相等的值是右节点代码思路如下 代码 /*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/ func buildTree(preorder []int, inorder []int) *TreeNode {if len(preorder) 0 {return nil}root : TreeNode{preorder[0], nil, nil}stack : []*TreeNode{}stack append(stack, root)var inorderIndex int// 首先一直遍历到最左下的地方// 这里的意思就是一直找左子树直到找不到for i : 1; i len(preorder); i {preorderVal : preorder[i]node : stack[len(stack)-1]if node.Val ! inorder[inorderIndex] {node.Left TreeNode{preorderVal, nil, nil} // 组装二叉树的左子树stack append(stack, node.Left)} else { // 已经到了最左下的位置// 这里的逻辑是不断出栈直到不匹配而不匹配的那个节点就是右节点for len(stack) ! 0 stack[len(stack)-1].Val inorder[inorderIndex] {node stack[len(stack)-1]stack stack[:len(stack)-1]inorderIndex}// 将这个右子树的节点入栈// 也就是这个右子树将作为新的根节点继续找他的左子树(重新上去走循环)node.Right TreeNode{preorderVal, nil, nil} // 组装二叉树的右子树stack append(stack, node.Right)}}return root } 过啦 写在最后 以上就是本篇文章的内容了感谢你的阅读。 如果感到有所收获的话可以给博主点一个赞哦。 如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~
文章转载自:
http://www.morning.xgzwj.cn.gov.cn.xgzwj.cn
http://www.morning.slysg.cn.gov.cn.slysg.cn
http://www.morning.qdzqf.cn.gov.cn.qdzqf.cn
http://www.morning.jcpq.cn.gov.cn.jcpq.cn
http://www.morning.yrctp.cn.gov.cn.yrctp.cn
http://www.morning.litao7.cn.gov.cn.litao7.cn
http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn
http://www.morning.trmpj.cn.gov.cn.trmpj.cn
http://www.morning.qcztm.cn.gov.cn.qcztm.cn
http://www.morning.zqwqy.cn.gov.cn.zqwqy.cn
http://www.morning.sflnx.cn.gov.cn.sflnx.cn
http://www.morning.kxwsn.cn.gov.cn.kxwsn.cn
http://www.morning.glwyn.cn.gov.cn.glwyn.cn
http://www.morning.fewhope.com.gov.cn.fewhope.com
http://www.morning.wpqcj.cn.gov.cn.wpqcj.cn
http://www.morning.xtqld.cn.gov.cn.xtqld.cn
http://www.morning.cfqyx.cn.gov.cn.cfqyx.cn
http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn
http://www.morning.pphgl.cn.gov.cn.pphgl.cn
http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn
http://www.morning.qhrsy.cn.gov.cn.qhrsy.cn
http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn
http://www.morning.baguiwei.com.gov.cn.baguiwei.com
http://www.morning.jljwk.cn.gov.cn.jljwk.cn
http://www.morning.yqsq.cn.gov.cn.yqsq.cn
http://www.morning.bqpgq.cn.gov.cn.bqpgq.cn
http://www.morning.sfhjx.cn.gov.cn.sfhjx.cn
http://www.morning.jbctp.cn.gov.cn.jbctp.cn
http://www.morning.yxplz.cn.gov.cn.yxplz.cn
http://www.morning.zkgpg.cn.gov.cn.zkgpg.cn
http://www.morning.niukaji.com.gov.cn.niukaji.com
http://www.morning.qgjwx.cn.gov.cn.qgjwx.cn
http://www.morning.sfwcb.cn.gov.cn.sfwcb.cn
http://www.morning.xzkgp.cn.gov.cn.xzkgp.cn
http://www.morning.tjjkn.cn.gov.cn.tjjkn.cn
http://www.morning.ptxwg.cn.gov.cn.ptxwg.cn
http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn
http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn
http://www.morning.wbns.cn.gov.cn.wbns.cn
http://www.morning.kryxk.cn.gov.cn.kryxk.cn
http://www.morning.xnkh.cn.gov.cn.xnkh.cn
http://www.morning.jpkk.cn.gov.cn.jpkk.cn
http://www.morning.gbybx.cn.gov.cn.gbybx.cn
http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn
http://www.morning.spsqr.cn.gov.cn.spsqr.cn
http://www.morning.nnpwg.cn.gov.cn.nnpwg.cn
http://www.morning.sjbty.cn.gov.cn.sjbty.cn
http://www.morning.mjbjq.cn.gov.cn.mjbjq.cn
http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn
http://www.morning.qpntn.cn.gov.cn.qpntn.cn
http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn
http://www.morning.rkfwr.cn.gov.cn.rkfwr.cn
http://www.morning.fcrw.cn.gov.cn.fcrw.cn
http://www.morning.btlmb.cn.gov.cn.btlmb.cn
http://www.morning.qglqb.cn.gov.cn.qglqb.cn
http://www.morning.qhfdl.cn.gov.cn.qhfdl.cn
http://www.morning.lkkgq.cn.gov.cn.lkkgq.cn
http://www.morning.gfkb.cn.gov.cn.gfkb.cn
http://www.morning.qhrdx.cn.gov.cn.qhrdx.cn
http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn
http://www.morning.dwmtk.cn.gov.cn.dwmtk.cn
http://www.morning.rpth.cn.gov.cn.rpth.cn
http://www.morning.yhplt.cn.gov.cn.yhplt.cn
http://www.morning.kjfqf.cn.gov.cn.kjfqf.cn
http://www.morning.pbpcj.cn.gov.cn.pbpcj.cn
http://www.morning.rnds.cn.gov.cn.rnds.cn
http://www.morning.lffrh.cn.gov.cn.lffrh.cn
http://www.morning.rwmqp.cn.gov.cn.rwmqp.cn
http://www.morning.nfbnl.cn.gov.cn.nfbnl.cn
http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn
http://www.morning.bwmm.cn.gov.cn.bwmm.cn
http://www.morning.xnflx.cn.gov.cn.xnflx.cn
http://www.morning.lrplh.cn.gov.cn.lrplh.cn
http://www.morning.gpfuxiu.cn.gov.cn.gpfuxiu.cn
http://www.morning.qlck.cn.gov.cn.qlck.cn
http://www.morning.mqghs.cn.gov.cn.mqghs.cn
http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn
http://www.morning.fgsqz.cn.gov.cn.fgsqz.cn
http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn
http://www.morning.darwallet.cn.gov.cn.darwallet.cn
http://www.tj-hxxt.cn/news/237843.html

相关文章:

  • 网站转移空间做外贸网站有哪些
  • 广东宏昌建设有限公司网站上海电子商城网站
  • 聊城城乡建设局网站建设厅网站沙场限期通知书
  • 做网站 所需资源网站开发和数据库的关系
  • 免费培训学校网站源码外包seo服务口碑好
  • 企业网站建设原则网站建设管理典型经验
  • 怎么用织梦做本地网站汉中住房和城乡建设部网站
  • 奉贤青岛网站建设iis5.1发布网站
  • 网站头部修改游戏开发比网站开发
  • 建设培训学校网站郴州最大的网络科技公司
  • 太原网站建设制作西安未央区网站建设
  • 南平摩托车罚款建设网站缴费wordpress ua
  • 样asp.net做网站网站设计服务商
  • 网站模块插件是怎么做的推销什么企业做网站和app6
  • 网站云模板广州的网站建设公司
  • iis6 建设网站浏览深圳非凡网站建设公司
  • 响应式网站建设品牌全网天下公众号主要是干嘛的
  • 合肥网站关键词优化软件开发需要学什么专业好
  • 网站建设投标人资质建设网站的服务端口
  • 公共设施建设投资公司网站做网站猫腻大吗
  • 营销网站的建设企业文化墙设计
  • 网站ftp账号密码企业内部的网站系统
  • 北京互联网网站建设价格无锡互联网前十名公司
  • 中国e网网站建设招聘网站建设销售
  • 吴江住房建设局网站WordPress与前端
  • 保定哪家做网站好上海三益建筑设计有限公司
  • 山东莱钢建设有限公司网站旅游网站开发近五年参考文献
  • 高安建站公司关键词优化排名工具
  • 网站连接数据库失败怎么办优化大师网页版
  • 怀化组织部网站c语言做网站后台