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

给网站做外链要注意哪些黑帽seo技巧

给网站做外链要注意哪些,黑帽seo技巧,wordpress 媒体分类,wordpress 模拟wordLeetCode 94. 二叉树的中序遍历 这是一道非常基础的模版题,因此就不放出题目描述及输入输出示例和数据范围了。 在用 Golang 重新做这道题的时候,我发现了一个有关 slice 的问题,那就是 slice 类型作为形参时,由于我们已经知道 s…

LeetCode 94. 二叉树的中序遍历

在这里插入图片描述
这是一道非常基础的模版题,因此就不放出题目描述及输入输出示例和数据范围了。

在用 Golang 重新做这道题的时候,我发现了一个有关 slice 的问题,那就是 slice 类型作为形参时,由于我们已经知道 slice 类型是底层数组的一个视图,是引用类型,那么按理说对它在函数中进行的修改在函数返回时,它的传入实参也应该已经得到相应的修改。

但事实却与预期不符,如果直接以 slice 作为形参,那么无法返回正确的中序遍历结果:

// ❌ 无法得到预期的结果
/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func inorderTraverse(node *TreeNode, ans []int) {if node == nil {return}inorderTraverse(node.Left, ans)ans = append(ans, node.Val)inorderTraverse(node.Right, ans)
}func inorderTraversal(root *TreeNode) []int {ans := []int{}inorderTraverse(root, ans)return ans
}

但是当我把形参换位 slice 的指针之后,却能够得到正确的结果,这不禁引发了我的思考:既然 slice 已经是引用类型了,为什么还需要传入指针才能完成对实参的修改呢?

想要回答这个问题,我们需要首先回顾 Golang slice 的底层原理。Golang 的 slice 有三个字段,分别是 unsafe.Pointer,指向底层数组,以及 lencap,分别表示当前 slice 的长度以及容量。

因此如果我们朴素地传入一个 slice,并且在函数中调用了 append,那么很有可能 slice 的 lencap 会在函数中被修改,而由于 Golang 只有传值调用,我们传入的 slice 当中只有 unsafe.Pointer 字段指向底层数组的地址,但 lencap 字段是从函数外部通过调用复制进来的。所以在函数内部,底层数组当中的值确实被修改了,函数内部复制的 slice 的 lencap 也被修改了,但是 lencap 的修改对外部不可见。

综上,如果我们传值调用一个 slice 类型,那么它的 lencap 字段仍然是复制进函数的,函数内部对 lencap 的修改与外部实参无关。

所以如果我们想要使用 ans 这个 slice 保存正确的结果,应该传入 slice 的指针:

/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func inorderTraverse(node *TreeNode, ans *[]int) {if node == nil {return}inorderTraverse(node.Left, ans)*ans = append(*ans, node.Val)inorderTraverse(node.Right, ans)
}func inorderTraversal(root *TreeNode) []int {ans := []int{}inorderTraverse(root, &ans)return ans
}
http://www.dtcms.com/wzjs/441719.html

相关文章:

  • 做张网站banner多少钱贵阳搜索引擎排名推广
  • 网站开发加盟商怎么做东莞网站建设最牛
  • 如何取一个大气的名字的做网站seo网站优化培训厂家报价
  • 青州哪里做网站成都私人网站制作
  • 中小企业公共服务平台seo视频教程百度云
  • 廊坊建设企业网站学做网站需要学什么
  • 龙岩网站定制长尾关键词在线查询
  • 成都设计公司电话泰安网站优化公司
  • 长沙制作网站设计多少钱站外推广怎么做
  • 有什么好的网站可以接单子做关键字排名软件官网
  • 北京开发公司网站seo优化怎么做
  • 如何注册自己的工作室独立站seo推广
  • 江西医疗网站建设百度搜索风云榜总榜
  • php和asp做网站哪个好网站seo技术
  • 张家港做网站收费标准百度推广登录平台客服
  • 如何用dw做网站地图磁力天堂最新版地址
  • wordpress 安全性网站优化最为重要的内容是
  • 做网站主页图片一般多少mseo网站排名优化软件
  • 网站可以自己做吗做一个简单的网站需要多少钱
  • 各地民营企业创新前行东莞seo优化团队
  • asp.net做的网站文字控件随窗口大小不变化seo技术培训唐山
  • 关于电器网站建设的法律免费百度下载
  • html5 手机网站开发叫才seo 推广怎么做
  • 山西省网站制作优化设计全部答案
  • 网站用户管理系统永久不收费的软件app
  • 网络技术工程师网站推广优化排名教程
  • 关于建设网站的合作合同开封网络推广哪家好
  • 网站建设制作设计营销 大连seo少女
  • 直播短视频推广网站排名怎么优化
  • b站大全永不收费免费下载软件吗最新新闻事件今天国内大事