1372. 二叉树中的最长交错路径
小于 1 分钟
1372. 二叉树中的最长交错路径中等
解题思路:
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