通过暴力破解(递归)处理问题
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * * @param root TreeNode类 * @param o1 int整型 * @param o2 int整型 * @return int整型 */ var res *TreeNode func lowestCommonAncestor( root *TreeNode , o1 int , o2 int ) int { // write code here dfs(root, o1, o2) return res.Val } func dfs(node *TreeNode, o1 int , o2 int ) bool { if node == nil { return false } left := dfs(node.Left, o1, o2) right := dfs(node.Right, o1, o2) if (right && left) || ((left || right) && ((node.Val == o1) || (node.Val == o2))) { res = node } return left || right || (node.Val == o1) || (node.Val == o2) }