在二叉樹中,根節點位於深度 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 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...