专栏首页学习日记Golang Leetcode 687. Longest Univalue Path.go

Golang Leetcode 687. Longest Univalue Path.go

思路

二叉树常见的递归方案

code

type TreeNode struct {
	Val   int
	Left  *TreeNode
	Right *TreeNode
}

var ans int

func longestUnivaluePath(root *TreeNode) int {
	ans = 0
	longestPath(root)
	return ans
}

func longestPath(root *TreeNode) int {
	if root == nil {
		return 0
	}
	l := longestPath(root.Left)
	r := longestPath(root.Right)
	pl, pr := 0, 0
	if root.Left != nil && root.Val == root.Left.Val {
		pl = l + 1
	}
	if root.Right != nil && root.Val == root.Right.Val {
		pr = r + 1
	}
	ans = mymax(ans, pl+pr)
	return mymax(pl, pr)
}

func mymax(x, y int) int {
	if x > y {
		return x
	}
	return y
}

更多内容请移步我的repo:https://github.com/anakin/golang-leetcode

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Golang Leetcode 450. Delete Node in a BST.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89175007

    anakinsun
  • Golang Leetcode 965. Univalued Binary Tree.go

    更多内容请移步我的repo:https://github.com/anakin/golang-leetcode

    anakinsun
  • Golang Leetcode 669. Trim a Binary Search Tree.go

    更多内容请移步我的repo:https://github.com/anakin/golang-leetcode

    anakinsun
  • python中创建和遍历二叉树

    py3study
  • Linux 系统中查找正在运行的进程的完整命令、当前工作目录等信息的方法

    在某些系统故障的排查过程中,需要找出某个应用程序的工作目录、完整命令行等信息。通常会通过ps及top等命令来查看进程信息,但往往只能查到相对路径、部分命令行等。...

    耕耘实录
  • Linux之安装Tomcat8 原

        修改List-5的server.xml,将port的值修改为其它值就可以了,默认值是8080

    克虏伯
  • Golang Leetcode 450. Delete Node in a BST.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89175007

    anakinsun
  • Linux工作目录切换命令

    心跳包
  • 剑指Offer - 面试题54. 二叉搜索树的第k大节点(二叉树循环遍历)

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kd...

    Michael阿明
  • 【趣学程序】Linux流的重定向

    趣学程序-shaofeer

扫码关注云+社区

领取腾讯云代金券