package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @param p int整型 * @param q int整型 * @return int整型 */ func lowestCommonAncestor( root *TreeNode , p int , q int ) int { // write code here num1, num2 := p, q var dfs func(node *TreeNode) *TreeNode dfs = func(node *TreeNode) *TreeNode { if node == nil { return nil } if (node.Val >= num1 && node.Val <= num2) || (node.Val >= num2 && node.Val <= num1) { return node } if node.Val > num1 && node.Val > num2 { return dfs(node.Left) } else { return dfs(node.Right) } } return dfs(root).Val }