package com.interview.books.leetcode;
import com.interview.leetcode.utils.TreeNode;
import com.interview.leetcode.utils.TreeNodePrinter;
/**
* Created_By: stefanie
* Date: 14-12-11
* Time: 下午8:13
*/
public class LCS15_PrintBinaryTreeEdgeNodeAntiClock {
public void print(TreeNode root){
if(root == null) return;
System.out.println(root.val + ", ");
printLeftEdges(root.left, true);
printRightEdges(root.right, true);
}
public void printLeftEdges(TreeNode node, boolean print){
if(node == null) return;
if(print || (node.left == null && node.right == null))
System.out.println(node.val + ", ");
printLeftEdges(node.left, print);
printLeftEdges(node.right, node.left == null? print : false);
}
public void printRightEdges(TreeNode node, boolean print){
if(node == null) return;
printRightEdges(node.left, node.right == null? print : false);
printRightEdges(node.right, print);
if(print || (node.left == null && node.right == null))
System.out.println(node.val + ", ");
}
public static void main(String[] args){
LCS15_PrintBinaryTreeEdgeNodeAntiClock printer = new LCS15_PrintBinaryTreeEdgeNodeAntiClock();
TreeNode node = TreeNode.sampleBST();
TreeNodePrinter.print(node);
printer.print(node);
}
}