判空处理

由于题中的Node的构造器其中无参和有一个参数的构造器中,关于List<Node> children可能会存在空,所以当List为空时encode的递归方法会存在空指针的问题;同理decode的递归也会存在本来是null的children被赋值为非null的空ArrayList
pull/6/head
bluecrow1986 4 years ago committed by GitHub
parent 3278552cab
commit edcfebc814
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -58,7 +58,7 @@ public class Code03_EncodeNaryTreeToBinaryTree {
cur.right = tNode; cur.right = tNode;
} }
cur = tNode; cur = tNode;
cur.left = en(child.children); cur.left = child.children != null ? en(child.children) : null;
} }
return head; return head;
} }
@ -72,7 +72,7 @@ public class Code03_EncodeNaryTreeToBinaryTree {
} }
public List<Node> de(TreeNode root) { public List<Node> de(TreeNode root) {
List<Node> children = new ArrayList<>(); List<Node> children = root != null ? new ArrayList<>() : null;
while (root != null) { while (root != null) {
Node cur = new Node(root.val, de(root.left)); Node cur = new Node(root.val, de(root.left));
children.add(cur); children.add(cur);

Loading…
Cancel
Save