叶子节点单链表

/**
 * 从左到右生成叶子节点单链表。头指针是最左边节点。
 * 
 *
 */
public class LeafList {
	
	public Node head = null;
	public Node current = null;

	public void handle(Node node){
		if(node.left==null && node.right==null){
			if(head == null){
				head = node;
				current = node;
			}else{
				current.right = node;
				current = node;
			}
		}
		if(node.left != null){
			handle(node.left);
		}
		if(node.right != null){
			handle(node.right);
		}
	}
	
	public void printList(Node head){
		Node current = head;
		while(current != null){
			System.out.print(current.value + " ");
			current = current.right;
		}
		
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		BinaryTree bt = new BinaryTree();
		int[] a = {7,2,4,8,3,5,1,9,0,6};
		Node root = bt.buildTree(a);
		bt.printTree();
		
		LeafList ll = new LeafList();
		ll.handle(root);
		ll.printList(ll.head);
		
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值