每日一题: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] != -1return;
        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.二叉树的堂兄弟节点的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 993. 二叉树的堂兄弟节点——每日一题

LeetCode 993. 二叉树的堂兄弟节点——每日一题

LeetCode 993. 二叉树的堂兄弟节点——每日一题

LeetCode993. 二叉树的堂兄弟节点 / 剑指 Offer 44. 数字序列中某一位的数字 / 剑指 Offer 45. 把数组排成最小的数

5月17日每日一题:二叉树的堂兄弟节点

追求最优美的代码 leetcode 993. 二叉树的堂兄弟节点