解題報(bào)告:
就是traversal ?all nodes七冲。
/** * Definition for a binary tree node. * public class TreeNode { *? ? int val; *? ? TreeNode left; *? ? TreeNode right; *? ? TreeNode(int x) { val = x; } * } */
public class Solution {? ?
? ?public Listresult = new ArrayList<>();? ??
public ListboundaryOfBinaryTree(TreeNode root) {
if(root != null &&(root.left == null && root.right == null)) {
result.add(root.val);
return result;
}
if(root == null) return result;
if(root == null && (root.left == null && root.right == null)) return result;
result.add(root.val);
if(root.left!=null){
leftBoundary(root.left);
}
leaves(root);
if(root.right != null){
rightBoundary(root.right);
}
return result;
}
private void leftBoundary(TreeNode root){
if(root.left == null && root.right == null) return; // make is as leaves;
result.add(root.val);
if(root.left!=null){
leftBoundary(root.left);
}
if(root.left == null &&root.right != null){
leftBoundary(root.right);
}
}
private void leaves(TreeNode root){
if(root != null && root.left == null && root.right == null){
result.add(root.val);
}
if(root.left != null){
leaves(root.left);
}
if(root.right != null){
leaves(root.right);
}
return;
}
private void rightBoundary(TreeNode root){
if(root.left == null && root.right == null) return;
if(root.right != null){
rightBoundary(root.right);
}
if(root.right == null && root.left != null){
rightBoundary(root.left);
}
result.add(root.val);
}
}