dave on Nostr: // 前序遍历 func PreorderTraversal(root *TreeNode) []int { res := []int{} ...
// 前序遍历
func PreorderTraversal(root *TreeNode) []int {
res := []int{}
rootNode := root
stack := []*TreeNode{}
for rootNode != nil || len(stack) > 0 {
for rootNode != nil {
res = append(res, rootNode.Val)
stack = append(stack, rootNode)
rootNode = rootNode.Left
}
if len(stack) > 0 {
rootNode = stack[len(stack)-1]
stack = stack[:len(stack)-1]
rootNode = rootNode.Right
}
}
return res
}
// 中序遍历
func InorderTraversal(root *TreeNode) []int {
res := []int{}
stack := []*TreeNode{}
rootNode := root
for rootNode != nil || len(stack) > 0 {
for rootNode != nil {
stack = append(stack, rootNode)
rootNode = rootNode.Left
}
if len(stack) > 0 {
rootNode = stack[len(stack)-1]
stack = stack[:len(stack)-1]
res = append(res, rootNode.Val)
rootNode = rootNode.Right
}
}
return res
}
// 后序遍历
func PostorderTraversal(root *TreeNode) []int {
res := []int{}
rootNode := root
stack := []*TreeNode{}
for rootNode != nil || len(stack) > 0 {
for rootNode != nil {
stack = append(stack, rootNode)
res = append([]int{rootNode.Val}, res...)
rootNode = rootNode.Right
}
if len(stack) > 0 {
rootNode = stack[len(stack)-1]
stack = stack[:len(
Published at
2023-02-08 05:09:23Event JSON
{
"id": "9c4795ca5433842b16a11bccb079dd8eaea5825a60e80465846243639fbfd7cb",
"pubkey": "5c10ed0678805156d39ef1ef6d46110fe1e7e590ae04986ccf48ba1299cb53e2",
"created_at": 1675832963,
"kind": 1,
"tags": [
[
"e",
"be8b9a3596bcd5ece10504d6c0be99582cc6ad04dc1c66b4c3d7d68b4dda2849",
"",
"reply"
],
[
"p",
"a62495388e63390bcda5df2565ec6b484ea8fdf8d83ab65b720ccbea9a1ade39"
]
],
"content": "// 前序遍历\nfunc PreorderTraversal(root *TreeNode) []int {\n\tres := []int{}\n\trootNode := root\n\tstack := []*TreeNode{}\n\tfor rootNode != nil || len(stack) \u003e 0 {\n\t\tfor rootNode != nil {\n\t\t\tres = append(res, rootNode.Val)\n\t\t\tstack = append(stack, rootNode)\n\t\t\trootNode = rootNode.Left\n\t\t}\n\t\tif len(stack) \u003e 0 {\n\t\t\trootNode = stack[len(stack)-1]\n\t\t\tstack = stack[:len(stack)-1]\n\t\t\trootNode = rootNode.Right\n\t\t}\n\t}\n\treturn res\n}\n\n// 中序遍历\nfunc InorderTraversal(root *TreeNode) []int {\n res := []int{}\n\tstack := []*TreeNode{}\n\trootNode := root\n\tfor rootNode != nil || len(stack) \u003e 0 {\n\t\tfor rootNode != nil {\n\t\t\tstack = append(stack, rootNode)\n\t\t\trootNode = rootNode.Left\n\t\t}\n\t\tif len(stack) \u003e 0 {\n\t\t\trootNode = stack[len(stack)-1]\n\t\t\tstack = stack[:len(stack)-1]\n\t\t\tres = append(res, rootNode.Val)\n\t\t\trootNode = rootNode.Right\n\t\t}\n\t}\n\treturn res\n}\n\n// 后序遍历\nfunc PostorderTraversal(root *TreeNode) []int {\n res := []int{}\n rootNode := root\n stack := []*TreeNode{}\n for rootNode != nil || len(stack) \u003e 0 {\n for rootNode != nil {\n stack = append(stack, rootNode)\n res = append([]int{rootNode.Val}, res...)\n rootNode = rootNode.Right\n }\n if len(stack) \u003e 0 {\n rootNode = stack[len(stack)-1]\n stack = stack[:len(",
"sig": "af746b8044598e8bf63b7a885f4d7fcb8ebdac14c186f71c2b79d5af030147646d23ac928f6ee829cdafe598be1b89dd060d0a64d65731ef4c10aff21fdb7706"
}