102. 二叉樹的層次遍歷
自己做的,完全按bfs模板搞的:
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
queuequeue = new linkedlist<>();
queue.offer(new node(root, 0));
int level = 0;
listlist = new arraylist();
while(!queue.isempty())
list.add(n.v.val);
if (n.v.left != null)
if (n.v.right != null)
}result.add(list);
return result;
}class node
}}
別人的方法: dfs,直接把對應的值放到list的對應位置。執行時間變短
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
private void dfs(treenode root, int level)
if (list.size() <= level)
list.get(level).add(root.val); // 把當前值放到對應位置
dfs(root.left, level + 1); //先序遍歷
dfs(root.right, level + 1);
}}
107. 二叉樹的層次遍歷 ii
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
queuequeue = new linkedlist<>();
queue.offer(root);
while (!queue.isempty())
if (node.right != null)
}// 往隊頭放資料
result.addfirst(l);
} return result;
}}
LeetCode 初級演算法 樹 二叉樹的層次遍歷
給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其層次遍歷結果 3 9,20 15,7 一開始的解法是,先層次遍歷把所有的樹節點存放進乙個二維list中,然後在做一次巢狀迴圈將每個節點的...
LeetCode 力扣 102 二叉樹的層次遍歷
二叉樹的層次遍歷,輸出乙個 list 的 list。這道題考的就是 bfs,我們可以通過 dfs 實現。只需要在遞迴過程中將當前 level 傳入即可。public list levelorder treenode root private void dfs treenode root,int le...
leetcode 二叉樹 二叉樹的層次遍歷
給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 方法一 遞迴 思路 比較訪問節點所在層次level和當前最高層次len levels 判定是否需...