作者Rushia (みけねこ的鼻屎)
看板Marginalman
標題Re: [閒聊] 每日LeetCode
時間Thu Dec 8 10:39:42 2022
872. Leaf-Similar Trees
給你兩個樹,如果該兩個樹從左邊看到右邊的所有葉子節點都相等就返回true否則false
https://assets.leetcode.com/uploads/2020/09/03/leaf-similar-1.jpg
Input: root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 =
[3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
Output: true
思路:
1.分別前序走訪該兩個樹,如果訪問的node是葉子節點就加入List
2.比較兩個List是否相等。
JavaCode:
--------------------------------------
class Solution {
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
List<Integer> list1 = new ArrayList<>();
dfs(root1, list1);
List<Integer> list2 = new ArrayList<>();
dfs(root2, list2);
return list1.equals(list2);
}
private void dfs(TreeNode root, List<Integer> list) {
if (root == null) {
return;
}
if (root.left == null && root.right == null) {
list.add(root.val);
}
dfs(root.left, list);
dfs(root.right, list);
}
}
--------------------------------------
--
https://i.imgur.com/tdaniED.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.74.170 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1670467184.A.3D1.html
推 pandix: 大師 12/08 10:40
推 sustainer123: 大師 12/08 10:40
推 louiss72: ㄉㄚㄕˉ 12/08 10:47
推 SecondRun: 大師 12/08 11:17