Tuesday, May 17, 2022

Easy_Question13: Find All The Lonely Nodes

In a binary tree, a lonely node is a node that is the only child of its parent node. The root of the tree is not lonely because it does not have a parent node.

Given the root of a binary tree, return an array containing the values of all lonely nodes in the tree. Return the list in any order.

Example 1:



Input: root = [1,2,3,null,4]
Output: [4]
Explanation: Light blue node is the only lonely node.
Node 1 is the root and is not lonely.
Nodes 2 and 3 have the same parent and are not lonely.

Example 2:



Input: root = [7,1,4,6,null,5,3,null,null,null,null,null,2]
Output: [6,2]
Explanation: Light blue nodes are lonely nodes. Please remember that order doesn’t matter, [2,6] is also an acceptable answer.

Example 3:



Input: root = [11,99,88,77,null,null,66,55,null,null,44,33,null,null,22]
Output: [77,55,33,66,44,22]
Explanation: Nodes 99 and 88 share the same parent. Node 11 is the root. All other nodes are lonely.

Solution
Create a list to store the values of all lonely nodes. If root is null, return the list directly.
Do breadth first search. For each node, check its two children. For each non-empty child, offer the child to the queue for the next step’s search. If exactly one child is non-empty, then add the non-empty child’s value into the list.Finally, return the list
class Solution { public List<Integer> getLonelyNodes(TreeNode root) { List<Integer> lonelyNodes = new ArrayList<Integer>();
        if (root == null) return lonelyNodes;
Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root);
       while (!queue.isEmpty()) { TreeNode node = queue.poll(); TreeNode left = node.left, right = node.right;
if (left != null && right != null) { queue.offer(left); queue.offer(right); } else if (left != null) { lonelyNodes.add(left.val); queue.offer(left); } else if (right != null) { lonelyNodes.add(right.val); queue.offer(right); } } return lonelyNodes; } }

You may also like

Kubernetes Microservices
Python AI/ML
Spring Framework Spring Boot
Core Java Java Coding Question
Maven AWS