2012-06-04 31 views
0

我的代码是:序遍历的红宝石只有打印根音

class Tree 
    attr_accessor :node, :left, :right 

    def initialize(*args) 
    self.node = args[0] 
    self.left = args[1] 
    self.right = args[2] 
    end 

    def inorder 
    if self.left 
     self.left.inorder 
    else 
     return 
    end 
    puts self.node 
    if self.right 
     self.right.inorder 
    else 
     return 
    end 
    end 
end 

t2 = Tree.new 2 
t1 = Tree.new 1 
t = Tree.new 3,t1,t2 
t.inorder 

只打印根节点3.错在这里?

回答

3

因为您的密码将在puts之前return

def inorder 
    if self.left 
     self.left.inorder 
    end 
    puts self.node 
    if self.right 
     self.right.inorder 
    end 
    end