/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func kthSmallest(root *TreeNode, k int) (val int) { traversalKth(root, &k, &val) return } func traversalKth(node *TreeNode, k *int, val *int) { if node == nil { return } traversalKth(node.Left, k, val) (*k)-- if *k == 0 { *val = node.Val return } traversalKth(node.Right, k, val) }