144. Binary Tree Preorder Traversal
题目描述
Given a binary tree, return the preorder traversal of its nodes’ values.
|
|
题目大意
二叉树前序遍历
解题思路
迭代,辅助栈
由于栈的特性,需先将右子树压栈
代码
|
|
94. Binary Tree Inorder Traversal
题目描述
Given a binary tree, return the inorder traversal of its nodes’ values.
|
|
题目大意
二叉树中序遍历
解题思路
迭代,辅助栈
优先搜索左节点,当左节点为空时,再遍历根节点和右节点,循环以上步骤,采用辅助栈,保存根节点。
代码
|
|
145. Binary Tree Postorder Traversal
题目描述
Given a binary tree, return the postorder traversal of its nodes’ values.
|
|
题目大意
二叉树后序遍历
解题思路
迭代,辅助栈
遍历左右节点,当左右节点都为nil,或者左右节点都已被访问,可以输出当前节点的值,并出栈。根据栈先入后出的特性,需先将右节点压入栈。
代码
|
|
102. Binary Tree Level Order Traversal
题目描述
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
|
|
题目大意
二叉树层序遍历
解题思路
第一种采用递归, BFS(广度优先搜索)
代码
|
|
解题思路
第二种迭代,BFS(广度优先搜索)
利用Swift特性元祖,建立队列,将节点当前层数保留在队列。
给定ans变量作为结果,如果节点层数大于ans的数量,则先添加一个空数组到ans内,防止数组越界的情况。
代码
|
|
107. Binary Tree Level Order Traversal II
题目描述
Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root).
|
|
题目大意
层序遍历,从底至上返回。
解题思路
和层序遍历思路差不多。
不同在于添加进数组时,需要插入到数组头。
代码
|
|
103. Binary Tree Zigzag Level Order Traversal
题目描述
Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).
|
|
题目大意
z型层序遍历二叉树,并以二维数组作为结果返回
解题思路
与层序遍历思路差不多。
不同点在于,需根据节点层数决定,ans添加节点值的方式(是insert还是append)。
代码
|
|