已解决
leetcode二叉树系列通用输入定义
来自网友在路上 174874提问 提问时间:2023-10-26 18:39:43阅读次数: 74
最佳答案 问答题库748位专家为你答疑解惑
日常我们在leetcode上刷题的时候,都是核心代码模式,并不知道如何构造参数,以及自己写输入输出调试的时候该如何处理,在这里进行一个整理。
下面以二叉树的层序遍历为示例来写:
package mainimport ("container/list""fmt"
)type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode
}func levelOrder(root *TreeNode) [][]int {result := [][]int{}if root == nil {return result}queue := list.New()queue.PushBack(root)for queue.Len() > 0 {levelSize := queue.Len()levelValues := []int{}for i := 0; i < levelSize; i++ {node := queue.Remove(queue.Front()).(*TreeNode)levelValues = append(levelValues, node.Val)if node.Left != nil {queue.PushBack(node.Left)}if node.Right != nil {queue.PushBack(node.Right)}}result = append(result, levelValues)}return result
}func main() {// 创建一个示例二叉树root := &TreeNode{Val: 3}root.Left = &TreeNode{Val: 9}root.Right = &TreeNode{Val: 20}root.Right.Left = &TreeNode{Val: 15}root.Right.Right = &TreeNode{Val: 7}// 执行层次遍历result := levelOrder(root)// 输出结果fmt.Println(result)
}
或者说是输入一个数组,然后构造二叉树,以输入有序数组(中序为例):
func sortedArrayToBST(nums []int, start, end int) *TreeNode {if start > end {return nil}mid := (start + end) / 2root := &TreeNode{Val: nums[mid]}root.Left = sortedArrayToBST(nums, start, mid-1)root.Right = sortedArrayToBST(nums, mid+1, end)return root
}func main() {arr := []int{1, 2, 3, 4, 5, 6, 7}result := sortedArrayToBST(arr, 0, len(arr)-1)
}
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"leetcode二叉树系列通用输入定义":http://eshow365.cn/6-25340-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!