力扣513:找树左下角的值
题目链接:力扣513:找树左下角的值
思路:
1.采用层序遍历
2.将每一层的节点加入到队列中
3.定义一个结果变量,将每一层的第一个元素的值赋值给该变量中
代码:
class Solution {
public int findBottomLeftValue(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
int res = 0;
while (!queue.isEmpty()) {
int size = queue.size();
for (int i = 0; i < size; i++) {
TreeNode poll = queue.poll();
if (i == 0) {
res = poll.val;
}
if (poll.left != null) {
queue.offer(poll.left);
}
if (poll.right != null) {
queue.offer(poll.right);
}
}
}
return res;
}
}
力扣112:路径总和
题目链接:力扣112:路径总和
思路:
暂时放下,二刷再深入理解
代码:
class solution {
public boolean haspathsum(treenode root, int targetsum) {
if (root == null) {
return false;
}
targetsum -= root.val;
// 叶子结点
if (root.left == null && root.right == null) {
return targetsum == 0;
}
if (root.left != null) {
boolean left = haspathsum(root.left, targetsum);
if (left) {// 已经找到
return true;
}
}
if (root.right != null) {
boolean right = haspathsum(root.right, targetsum);
if (right) {// 已经找到
return true;
}
}
return false;
}
}
力扣106:从中序与后续遍历序列构造二叉树
题目链接:力扣106:从中序与后续遍历序列构造二叉树
思路:
暂时放下,二刷再深入理解
代码: