day3

Binary Tree (Traverse A Tree)

Binary Tree Preorder Traversal

/
 
 Definition for a binary tree node.
  type TreeNode struct {
 
     Val int
      Left TreeNode
      Right TreeNode
  }
 
/
func preorderTraversal(root TreeNode) []int {
var arr []int
if root == nil {
return arr
}
arr = append(arr, root.Val)
arr1 := preorderTraversal(root.Left)
arr = arrmerge(arr, arr1)
arr2 := preorderTraversal(root.Right)
arr = arrmerge(arr, arr2)
return arr
}

func arrmerge(arr []int, arr1 []int) []int {
​ for _, v := range arr1 {
​ arr = append(arr, v)
​ }
​ return arr
}

Binary Tree Inorder Traversal

func inorderTraversal(root TreeNode) []int {
​ var arr []int
​ if root == nil {
​ return arr
​ }
​ arr1 := inorderTraversal(root.Left)
​ arr = arrmerge(arr, arr1)
​ arr = append(arr, root.Val)
​ arr2 := inorderTraversal(root.Right)
​ arr = arrmerge(arr, arr2)
​ return arr
}

Binary Tree Postorder Traversal

func postorderTraversal(root TreeNode) []int {
    var arr []int
​ if root == nil {
​ return arr
​ }
​ arr1 := postorderTraversal(root.Left)
​ arr = arrmerge(arr, arr1)
​ arr2 := postorderTraversal(root.Right)
​ arr = arrmerge(arr, arr2)
    arr = append(arr, root.Val)
​ return arr
}