广度优先:
//创建队列,放入根节点
Deque<TreeNode> d = new ArrayDeque<>();
d.addLast(root);
//每一轮先获取队列长度
while (!d.isEmpty()) {
int sz = d.size();
//遍历每一层的所有节点
while (sz-- > 0) {
TreeNode t = d.pollFirst();
if (t.left != null) d.addLast(t.left);
if (t.right != null) d.addLast(t.right);
//这里写其他操作
}
//其他操作
}
深度优先:
public boolean 原函数(TreeNode root1, TreeNode root2) {
//其他操作
(.....);
//其他操作
}
public void dfs(TreeNode node, 。。。。) {
if (在这里判断当前节点是否符合要求) {
若符合则加入
}
else {
if (node.left != null) {
dfs(node.left,。。。);
}
if (node.right != null) {
dfs(node.right,。。。);
}
}
}