(树)-二叉树链表表示

1.二叉树新节点的插入:create(root,val) 

class node:
    def __init__(self):
        self.data = 0
        self.left = None
        self.right = None


def create(root, val):
    newnode = node()
    newnode.data = val
    newnode.left = None
    newnode.right = None
    if root == None:
        root = newnode
        return root

    current = root
    while current != None:
        parent = current
        if val < current.data:
            current = current.left
        else:
            current = current.right
    if parent.data > val:
        parent.left = newnode
    else:
        parent.right = newnode
    return root


data = [1, 7, 3, 4, 5, 2, 9, 11, 13, 15, 12]

root = None
for i in range(len(data)):
    root = create(root, data[i])

2.二叉树的删除

1)删除点为叶子节点,与之相连的父节点指向None

2)删除节点下只有1棵树:之间上提替换节点

3)有两棵树:1,中序遍历,左树最大者上提;2右树最小者上提。 

原文地址:https://www.cnblogs.com/onenoteone/p/12441751.html