问题描述:二叉树,从左边看,输出从左边看到的节点。二叉树的左视图
两个java类
1.TreeNode.java
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){ this.val = x;}
}
2.Views.java
public class Views {
public void leftSideView(TreeNode root) {
Queue<TreeNode> queue = new LinkedList();
queue.add(root);
while (! queue.isEmpty()) {
int size = queue.size();
for (int i =0 ;i <size; i++) {
TreeNode tempNode = queue.poll();
if (i == 0 ) {
System.out.println(tempNode.val);
}
if (tempNode.left!=null) {
queue.add(tempNode.left);
}
if (tempNode.right!=null) {
queue.add(tempNode.right);
}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeNode root = new TreeNode(10);
TreeNode node1 = new TreeNode(6);
TreeNode node2 = new TreeNode(20);
TreeNode node3 = new TreeNode(8);
TreeNode node4 = new TreeNode(15);
TreeNode node5 = new TreeNode(25);
TreeNode node6 = new TreeNode(30);
root.left = node1;
root.right = node2;
node1.right = node3;
node2.left= node4;
node2.right = node5;
node5.right = node6;
Views views = new Views();
views.leftSideView(root);
}
}