LeetCode 初級演算法 樹 二叉樹的層次遍歷

2021-08-21 21:33:18 字數 1063 閱讀 6613

給定乙個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。

例如:給定二叉樹:[3,9,20,null,null,15,7],

3

/ \9 20

/ \

15 7

返回其層次遍歷結果:

[

[3],

[9,20],

[15,7]

]

一開始的解法是,先層次遍歷把所有的樹節點存放進乙個二維list中,然後在做一次巢狀迴圈將每個節點的值存放進另乙個二維list中

public list> levelorder(treenode root) 

//基本情況判斷

if(root.left==null&&root.right==null)

//存放樹節點的二維list

arraylist> arrays=new arraylist<>();

//二維list中的每一行

arraylisttemp=new arraylist<>();

temp.add(root);

arrays.add(temp);

//層數

int level=0;

//層次遍歷節點

while(arrays.get(level).size()!=0)

if(temp.get(i).right!=null)

}if(cur.size()!=0) else

}//生成層次遍歷的陣列

for (int i = 0; i < arrays.size(); i++)

queuecur=new linkedlist<>();

cur.offer(root);

int length=1;

listt=new arraylist<>();

while(!cur.isempty())

if(tem.right!=null)

if(length==0)

}return resultlist;

}

初級演算法之樹 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3輸出 true 示例 2 輸入 5 1 4 3 6輸出 false 解釋 輸入...

leetcode 二叉樹 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true 示例 2 輸入 5 1 4 3 6 輸出 false 解釋 ...

leetcode 二叉樹 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...