1 | Definition for a binary tree node. |
LeetCode109. 有序链表转换二叉搜索树
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
1 | class Solution: |
LeetCode114. 二叉树展开为链表
给定一个二叉树,原地将它展开为链表。
前序遍历
1 | class Solution: |
LeetCode116. 填充同一层的兄弟节点
给定一个二叉树填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。
1
2
3
4
5 struct TreeLinkNode {
TreeLinkNode *left;
TreeLinkNode *right;
TreeLinkNode *next;
}
初始状态下,所有 next 指针都被设置为 NULL。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15class Solution:
# @param root, a tree link node
# @return nothing
def connect(self, root):
if root is None: return
start = root
while start.left:
cur = start
while cur:
cur.left.next = cur.right
if cur.next:
cur.right.next = cur.next.left
cur = cur.next
start = start.left
return
LeetCode124. 二叉树中的最大路径和
给定一个非空二叉树,返回其最大路径和。
本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。
1 | class Solution(object): |
LeetCode236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
1 | class Solution(object): |