94 二叉樹的中序遍歷

2021-10-03 13:52:16 字數 890 閱讀 8248

給定乙個二叉樹,返回它的中序 遍歷。

示例:輸入: [1,null,2,3]

1\2

/3

輸出: [1,3,2]

這道題在王道408中有講到,但是記憶不是特別清晰了於是再寫了一次

首先當然是最簡單的遞迴寫法

class solution 

public listhelp(treenode root,list list)

help(root.left,list);

list.add(root.val);

help(root.right,list);

return list;

}}

接著重點來了 ,非遞迴寫法 這就要用到棧了

1

2 3

4 5 6 7

輸出的序列是 4251637 先走到最左 一次入棧 ,到底後出棧,訪問該節點,接著訪問訪問其右子樹 依然是走左走到底,同時入棧,到底後出棧

class solution 

stackst = new stack();

while(root!=null||!st.isempty())

//左子樹入棧完成,應出棧棧頂節點,並且訪問

treenode temp= st.pop();

//訪問當前出棧節點

list.add(temp.val);

//將root置位 當前出棧節點的右子樹 ,接著對右子樹 走開始的流程:往左走,依次入棧

root=temp.right;

}//左子樹已經入棧完成.

return list;

}}

94 二叉樹的中序遍歷

94.二叉樹的中序遍歷 給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?definition for a binary tree node.struct treenode class solutio...

94 二叉樹的中序遍歷

給定乙個二叉樹的根節點root,返回它的中序遍歷。示例 1 輸入 root 1,null,2,3 輸出 1,3,2 示例 2 輸入 root 輸出 示例 3 輸入 root 1 輸出 1 示例 4 輸入 root 1,2 輸出 2,1 示例 5 輸入 root 1,null,2 輸出 1,2 遞迴 ...

力扣94 二叉樹的中序遍歷 中序遍歷

給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 12 3輸出 1,3,2 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?中序遍歷是左子樹 根 右子樹。這個是同乙個規律適用於整個樹,所以使用遞迴。結束條件為沒有發現值,即節點為null。definition for a bi...