LeetCode 257
2020.8.12
我的通过代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
//创建一个List
List<String> list = new ArrayList<String>();
if(root==null) return list;
String res = Integer.toString(root.val);
traverse(root,res,list);
return list;
}
//用先序遍历
void traverse(TreeNode root,String res,List<String> list) {
String res_left = res;
String res_right = res;
if(root.left!=null) {
res_left+="->"+root.left.val;
traverse(root.left,res_left,list);
}
if(root.right!=null) {
res_right+="->"+root.right.val;
traverse(root.right,res_right,list);
}
if(root.left==null&&root.right==null) {
list.add(res_left);
}
}
}
碰上的问题
这是我在leetcode上做的第一道关于“树”的题目,执行样例通过后提交,系统报出了空指针异常,对应的是这句话
String res = Integer.toString(root.val);
emmmm
捣腾了半天我才知道要考虑空树的情况,于是在这句话前面加个判断就好了。