zoukankan      html  css  js  c++  java
  • LeetCode 687. Longest Univalue Path(相同节点值的最大路径长度)

    题意:统计相同节点值的最大路径长度,两点间的最大路径代表两点间边的个数。

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int ans;
        int dfs(TreeNode* root){
            if(root == NULL) return 0;
            int left = dfs(root -> left);
            int right = dfs(root -> right);
            if(root -> left && root -> val == root -> left -> val){
                ++left;
            }
            else{
               left = 0;
            }
            if(root -> right && root -> val == root -> right -> val){
                ++right;
            }
            else{
                right = 0;
            }
            ans = max(ans, left + right);
            return max(left, right);
        }
        int longestUnivaluePath(TreeNode* root) {
            ans = 0;
            dfs(root);
            return ans;
        }
    };
    

      

  • 相关阅读:
    小X的密码破译
    小X的加法难题
    足球联赛
    机器分配
    化装晚会
    Soundex编码
    迷之阶梯
    使用JMeter做压力测试
    SCOI 2010 序列操作
    动态求区间K大值(权值线段树)
  • 原文地址:https://www.cnblogs.com/tyty-Somnuspoppy/p/12508059.html
Copyright © 2011-2022 走看看