Leetcode 993二叉樹的堂兄弟節點

2022-03-27 00:09:05 字數 1290 閱讀 5029

在二叉樹中,根節點位於深度 0 處,每個深度為 k 的節點的子節點位於深度 k+1 處。

如果二叉樹的兩個節點深度相同,但父節點不同,則它們是一對堂兄弟節點。

我們給出了具有唯一值的二叉樹的根節點 root,以及樹中兩個不同節點的值 x 和 y。

只有與值 x 和 y 對應的節點是堂兄弟節點時,才返回 true。否則,返回 false。

示例 1:

1/ \

2 3/4

輸入:root = [1,2,3,4], x = 4, y = 3

輸出:false

示例 2:

1/ \

2 3

\ \

4 5

輸入:root = [1,2,3,null,4,null,5], x = 5, y = 4

輸出:true

示例 3:

1/ \

2 3\4

輸入:root = [1,2,3,null,4], x = 2, y = 3

輸出:false

二叉樹的節點數介於 2 到 100 之間。

每個節點的值都是唯一的、範圍為 1 到 100 的整數。

class solution 

/** 思路:定義乙個儲存查詢出來的值,

* key儲存的是當前節點的父結點,value儲存的是當前節點的深度

*/private pairdfs(treenode root,

treenode parent,

int value,

int level)

}

class solution 

if(pair.getvalue().left != null)

queue.offer(new pair<>(pair.getvalue(),pair.getvalue().left));

if(pair.getvalue().right != null)

queue.offer(new pair<>(pair.getvalue(),pair.getvalue().right));

}level ++;

}return false;

}}

class solution 

private void dfs(treenode root,treenode par)

}}

LeetCode 993 二叉樹的堂兄弟節點

題目 在二叉樹中,根節點位於深度 0 處,每個深度為 k 的節點的子節點位於深度 k 1 處。如果二叉樹的兩個節點深度相同,但父節點不同,則它們是一對堂兄弟節點。我們給出了具有唯一值的二叉樹的根節點 root,以及樹中兩個不同節點的值 x 和 y。只有與值 x 和 y 對應的節點是堂兄弟節點時,才返...

leetcode 993 二叉樹的堂兄弟節點

這道題給出二叉樹root,x和y,要解決的問題是在樹中找到x和y,並且確定它們是否為堂兄弟節點的關係。佇列實現 bfs 廣度優先遍歷每一層,存入佇列中,判斷x和y是否在同一層,如果在,就是判斷是否為堂兄弟節點。在同一層中,只有相鄰節點並且右邊的節點的索引為奇數 左邊節點索引為偶數時,才是同乙個父節點...

leetcode 二叉樹 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...