数据结构与算法 - 二叉树

c++ 版

struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

swift 版

public class TreeNode {
    public var val: Int
    public var left: TreeNode?
    public var right: TreeNode?
    public init() { self.val = 0; self.left = nil; self.right = nil; }
    public init(_ val: Int) { self.val = val; self.left = nil; self.right = nil; }
    public init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
        self.val = val
        self.left = left
        self.right = right
    }
}

Python 版

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

Ruby 版

class TreeNode
    attr_accessor :val, :left, :right
    def initialize(val = 0, left = nil, right = nil)
        @val = val
        @left = left
        @right = right
    end
end

二叉树的建立

建立二叉树主要有四种方式:

  1. 使用广义表建立二叉树
  2. 使用前序遍历创建二叉树,用#表示空结点(用#将节点补成满二叉树)
  3. 使用先序遍历和中序遍历创建二叉树
  4. 使用后序遍历和中序遍历创建二叉树

二叉树算法

posted @ 2021-12-24 17:03  Logan_Xu  阅读(21)  评论(0编辑  收藏  举报