513.找树左下角的值
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
public class day18_513_找树左下角的值 {
public static class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public static void main(String[] args) {
List<List<Integer>> res=new ArrayList<>();
//这是存结果的,最后要获取的结果就是最后一个集合的第一个元素
}
public static int findBottomLeftValue(TreeNode root) {
List<List<Integer>> res=new ArrayList<>();
Deque<TreeNode> temp=new LinkedList<>();
if (root==null) {
return 0;
}
temp.offer(root);
while (!temp.isEmpty()) {
int len=temp.size();
List<Integer> cen=new LinkedList<>();
for(int i=0;i<len;i++){
TreeNode demo2=temp.pollFirst();
if (demo2!=null) {
cen.add(demo2.val);
}
if (demo2.left!=null) {
temp.offer(demo2.left);
}
if (demo2.right!=null) {
temp.offer(demo2.right);
}
}
res.add(cen);
}
return res.get((res.size()-1)).get(0);
}
}
自己会一种就行了,层序遍历然后取最后一个的第一个元素就行了.