- Java Data Structures Tutorial
- Java Data Structures Resources
- Java Data Structures - Quick Guide
- Java Data Structures - Resources
- Java Data Structures - Discussion
Removing a leaf node in a tree
Traverse through each node in the tree verify whether it has left child or, right or, both. If it does not have any child nodes remove that particular node.
Example
class Node{ int data; Node leftNode, rightNode; Node() { leftNode = null; rightNode = null; this.data = data; } Node(int data) { leftNode = null; rightNode = null; this.data = data; } int getData() { return this.data; } Node getleftNode() { return this.leftNode; } Node getRightNode() { return this.leftNode; } void setData(int data) { this.data = data; } void setleftNode(Node leftNode) { this.leftNode = leftNode; } void setRightNode(Node rightNode) { this.leftNode = rightNode; } } public class RemovingLeaf { public static void main(String[] args) { Node node = new Node(50); node.leftNode = new Node(60); node.leftNode.leftNode = new Node(45); node.leftNode.rightNode = new Node(64); node.rightNode = new Node(60); node.rightNode.leftNode = new Node(45); node.rightNode.rightNode = new Node(64); node.leftNode.leftNode.leftNode = new Node(96); System.out.println("Contents of the tree:"); preOrder(node); removeLeaves(node); System.out.println(); System.out.println("Contents of the tree after removing leafs:"); preOrder(node); } public static void removeLeaves(Node node) { if (node.leftNode != null) { // tests left root if (node.leftNode.leftNode == null && node.leftNode.rightNode == null) { node.leftNode = null; // delete } else { removeLeaves(node.leftNode); } } } public static void preOrder(Node root) { if(root !=null) { System.out.print(root.data+" "); preOrder(root.leftNode); preOrder(root.rightNode); } } }
Output
Contents of the tree: 50 60 45 96 64 60 45 64 Contents of the tree after removing leafs: 50 60 45 64 60 45 64
Advertisements
To Continue Learning Please Login
Login with Google