跳至主要內容

1372. 二叉树中的最长交错路径

T4mako算法深度优先二叉树小于 1 分钟

1372. 二叉树中的最长交错路径

中等

题目描述open in new window

解题思路:
dfs时传入一个参数 falg,判断这次所在结点应该向左还是向右
对于该结点的另一方向,仍需dfs一次

class Solution {
   int res = 0;
    public int longestZigZag(TreeNode root) {
        if(root.right != null) dfs(root,0,true);
        if(root.left != null) dfs(root,0,false);
        return res;
    }
    // flag:true 向右 false:向左
    public void dfs(TreeNode node,int count,boolean flag){
        if(flag){
           if(node.right != null) {
               res=Math.max(++count,res);
               dfs(node.right,count, false);
           }
           if(node.left != null){
               dfs(node.left,1,true);
           }
        }
        else {
            if(node.left != null){
                res=Math.max(++count,res);
                dfs(node.left,count, true);
            }
            if(node.right != null){
                dfs(node.right,1,false);
            }
        }
    }
}
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5