题解 | #实现二叉树先序,中序和后序遍历#

实现二叉树先序,中序和后序遍历

https://www.nowcoder.com/practice/a9fec6c46a684ad5a3abd4e365a9d362

package main

import . "nc_tools"

func threeOrders(root *TreeNode) [][]int {
	// write code here
	res := make([][]int, 3)
	for i := 0; i < 3; i++ {
		res[i] = make([]int, 1010)
	}
	len := preOrder(root, res[0], 0)
	res[0] = res[0][0:len]
	len = midOrder(root, res[1], 0)
	res[1] = res[1][0:len]
	len = postOrder(root, res[2], 0)
	res[2] = res[2][0:len]
	return res
}

func postOrder(root *TreeNode, data []int, len int) int {
	if root == nil {
		return len
	}
	len = postOrder(root.Left, data, len)
	len = postOrder(root.Right, data, len)
	data[len] = root.Val
	len++
	return len
}

func midOrder(root *TreeNode, data []int, len int) int {
	if root == nil {
		return len
	}
	len = midOrder(root.Left, data, len)
	data[len] = root.Val
	len++
	len = midOrder(root.Right, data, len)
	return len
}

func preOrder(root *TreeNode, data []int, len int) int {
	if root == nil {
		return len
	}
	data[len] = root.Val
	len++
	len = preOrder(root.Left, data, len)
	len = preOrder(root.Right, data, len)
	return len
}

全部评论

相关推荐

10-22 15:25
门头沟学院 C++
种花网友小松:求求你别发了,我几乎都快嫉妒得疯了,倒在床上蒙住被子就开始抱着枕头尖叫流泪,嘴里一边喊着卧槽卧槽,一边又忍着,我边发边哭,打字的手都是抖的,后来我的手抖得越来越厉害,从心头涌起的思想、情怀和梦想,这份歆羡和悔恨交织在一起,我的笑还挂在脸上,可是眼泪一下子就掉下来了。求你了别发了,我生活再难再穷我都不会觉得难过,只有你们发这种东西的时候,我的心里像被刀割一样的痛,打着字泪水就忍不住的往下流。
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务