找到二叉樹中的最大搜尋二叉子樹

2021-09-09 09:11:49 字數 1078 閱讀 5826

【題目】給定一棵二叉樹的頭節點head,已知其中所有節點的值都不一樣,找到含有節點最多的搜尋二叉子樹,並返回這棵子樹的頭節點。

public

class

biggestsubbstintree

}public

static

class

returndata

}public

static returndata process

(node head)

returndata leftinfo =

process

(head.left)

; returndata rightinfo =

process

(head.right)

;int includeitself =0;

if(leftinfo.head == head.left && rightinfo.head == head.right && head.value > leftinfo.max

&& head.value < rightinfo.min)

int p1 = leftinfo.size;

int p2 = rightinfo.size;

int maxsize = math.

max(math.

max(p1, p2)

, includeitself)

; node maxhead = p1 > p2 ? leftinfo.head : rightinfo.head;

if(maxsize == includeitself)

return

newreturndata

(maxsize, maxhead, math.

min(math.

min(leftinfo.min, rightinfo.min)

, head.value)

, math.

max(math.

min(leftinfo.min, rightinfo.min)

, head.value));

}}

找到二叉樹中的最大搜尋二叉子樹

題目 找到二叉樹中的最大搜尋二叉子樹 程式設計師 面試指南 第37題 p121 難度 尉 書上原話 本題涉及二叉樹面試題中乙個很常見的套路,也是全書的乙個重要內容 可見其重要性。這個套路的名字叫做樹形dp套路。樹形dp套路使用前提 如果題目求解目標是s規則,則求解流程可以定成以每乙個節點為頭結點的子...

二叉樹問題 找到二叉樹中的最大搜尋二叉子樹

題目 給定一棵二叉樹的頭節點head,已知其中所有節點的值都不一樣,找到含有節點最多的搜尋二叉樹,並返回這棵子樹的頭節點。注意子樹的概念 基本思路 以節點node為頭的樹中,最大的搜尋二叉樹只可能來自以下的兩種情況 node的左子樹和右子樹都是搜尋二叉樹,並且左子樹的最大值小於node,右子樹的最小...

找到二叉樹中的最大搜尋二叉樹

題目 給定一顆二叉樹,已知其中所有節點的值都不一樣,找到含有節點最多的二叉搜尋樹,並返回頭節點。注 乙個二叉樹的子樹的葉節點必須是該二叉樹的葉節點。解答 1.後續遍歷 2.每次記錄下最小值,最大值,節總數。如果root左右節點符合,則總數相加後,返回此根節點 否則返回左右節點中節點數最多的節點。輸入...