123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package main
- import (
- "strconv"
- )
- // ListNode ...
- type ListNode struct {
- Val int
- Next *ListNode
- }
- // TreeNode ...
- type TreeNode struct {
- Val int
- Left *TreeNode
- Right *TreeNode
- }
- func abs(x int) int {
- if x < 0 {
- return -x
- }
- return x
- }
- func maxInt(x, y int) int {
- if x > y {
- return x
- }
- return y
- }
- func minInt(x, y int) int {
- if x < y {
- return x
- }
- return y
- }
- func list2str(head *ListNode) string {
- curr := head
- str := ""
- for curr != nil {
- str += strconv.FormatInt(int64(curr.Val), 10) + " "
- curr = curr.Next
- }
- return str
- }
- func printTree(root *TreeNode) { // Level order traversal
- if root == nil {
- println("nil")
- return
- }
- queue := make([]*TreeNode, 0) // Important!
- queue = append(queue, root)
- for len(queue) != 0 {
- curr := queue[0]
- queue = queue[1:] // Dequeue
- if curr == nil {
- print("nil ")
- continue
- }
- print(curr.Val, " ")
- if curr.Left != nil {
- queue = append(queue, curr.Left)
- } else if curr.Right != nil {
- queue = append(queue, nil)
- }
- if curr.Right != nil {
- queue = append(queue, curr.Right)
- } else if curr.Left != nil {
- queue = append(queue, nil)
- }
- }
- println()
- }
|