LeetCode刷题实战545:二叉树的边界
共 2641字,需浏览 6分钟
·
2022-03-10 17:16
示例
解题
public List
boundaryOfBinaryTree(TreeNode root) {
Listres = new ArrayList<>();
if (root == null) return res;
res.add(root.val);
getBounds(root.left, res, true, false);
getBounds(root.right, res, false, true);
return res;
}
public void getBounds(TreeNode node, Listres, boolean leftBound, boolean rightBound ) {
if (node == null) return;
if (leftBound) {
res.add(node.val);
}
//add bottom
if(!leftBound && !rightBound && node.left == null && node.right == null) {
res.add(node.val);
}
getBounds(node.left, res, leftBound, rightBound && node.right == null);
getBounds(node.right, res, leftBound && node.left == null, rightBound);
if (rightBound) {
res.add(node.val);
}
}
好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。