ruby - ruby 中的中序遍历仅打印根注释

标签 ruby algorithm data-structures

我的代码是:

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。这里出了什么问题?

最佳答案

因为您的代码将在 puts 之前返回

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

关于ruby - ruby 中的中序遍历仅打印根注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876264/

相关文章:

language-agnostic - 序列化持久/功能数据结构

ruby-on-rails - AWS RDS 扩展安装

ruby - MacRuby:objective-c 运行时与 ruby​​ 运行时相同

ruby - 计算两个字母一起出现的次数

algorithm - Union-find 表示为社交网络

python - 检查二叉树是否对称的技术

python - 词典列表 : loop through key contents

javascript - 如何使用javascript附加rails复选框标签?

javascript - 我在 JavaScript 中执行 rot13 的哪里出错了?

string - 递归删除子字符串的出现