每日一题:993.二叉树的堂兄弟节点
Posted 爱吃煎蛋的小胖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题:993.二叉树的堂兄弟节点相关的知识,希望对你有一定的参考价值。
题目
解题思路
遍历一遍就好
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public boolean isCousins(TreeNode root, int x, int y) {
int[][] arr = new int[2][2];
arr[0][1] = -1;
arr[1][1] = -1;
dfs(root, 0, x, y, 0, arr);
// System.out.println(arr[0][1]);
// System.out.println(arr[1][1]);
if(arr[0][1] == arr[1][1] && arr[0][0] != arr[1][0]) return true;
return false;
}
private void dfs(TreeNode root, int pre, int x, int y, int high, int[][] arr) {
// TODO Auto-generated method stub
if(arr[0][1] != -1 && arr[1][1] != -1) return;
if(root == null) {
return ;
}
if (root.val == x ) {
arr[0][0] = pre;
arr[0][1] = high;
return ;
}
if (root.val == y ) {
arr[1][0] = pre;
arr[1][1] = high;
return ;
}
dfs(root.left, root.val, x, y, high+1, arr);
dfs(root.right, root.val, x, y, high+1, arr);
return ;
}
}
以上是关于每日一题:993.二叉树的堂兄弟节点的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode993. 二叉树的堂兄弟节点 / 剑指 Offer 44. 数字序列中某一位的数字 / 剑指 Offer 45. 把数组排成最小的数